正则表达式字边界(退格)测试用例

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);
}