正则表达式字边界(退格)测试用例
Regex word boundary (backspace) test case
如果按键事件是否退格,我想测试这个条件:
if (key.match(/[\b]/)) {
return true;
}
其中 key
来自击键。 (比如 'a', '6' , '.'
等)
对于 if
条件,key
的值应该是 return true
?
我试过 key
作为 '.'
因为它是一个单词边界(但遗憾的是只有一个单词)。显示backspace <-
.
应该用什么键
[\b]
匹配退格字符,因为 \b
在字符 class 内。要匹配单词边界,请使用 /\b/
(其中 \b
是 而不是字符 class 内的 ) :
var key = "a";
if (/\b/.test(key)) { // Or, perhaps, for better portability, /[\x08]/.test(key)
alert(true);
}
如果您打算匹配所有非单词字符,您只需要 \W
,而不是 \b
。 字边界 \b
匹配^
和\w
或\w
和$
或[=16之间的位置=] 和 \w
或 \w
和 \W
(其中 \w
代表 [a-zA-Z0-9_]
而 \W
代表不在这些范围内的任何其他字符).此外,如果您需要匹配 1 个字符的字符串,请不要忘记锚点:/^\W$/
.
更新
要测试退格键,您可以使用
var key = "\x08";
if (/[\b]/.test(key)) {
alert(true);
}
如果按键事件是否退格,我想测试这个条件:
if (key.match(/[\b]/)) {
return true;
}
其中 key
来自击键。 (比如 'a', '6' , '.'
等)
对于 if
条件,key
的值应该是 return true
?
我试过 key
作为 '.'
因为它是一个单词边界(但遗憾的是只有一个单词)。显示backspace <-
.
[\b]
匹配退格字符,因为 \b
在字符 class 内。要匹配单词边界,请使用 /\b/
(其中 \b
是 而不是字符 class 内的 ) :
var key = "a";
if (/\b/.test(key)) { // Or, perhaps, for better portability, /[\x08]/.test(key)
alert(true);
}
如果您打算匹配所有非单词字符,您只需要 \W
,而不是 \b
。 字边界 \b
匹配^
和\w
或\w
和$
或[=16之间的位置=] 和 \w
或 \w
和 \W
(其中 \w
代表 [a-zA-Z0-9_]
而 \W
代表不在这些范围内的任何其他字符).此外,如果您需要匹配 1 个字符的字符串,请不要忘记锚点:/^\W$/
.
更新
要测试退格键,您可以使用
var key = "\x08";
if (/[\b]/.test(key)) {
alert(true);
}