[\b]显然匹配退格字符.我无法理解字符串如何包含退格字符.有人能给我一个如何使用它的具体例子吗?非常感谢.
Mar*_*der 39
虽然所有其他一般都是正确的(这\b是一个单词边界),\b 但意味着在字符类中的退格:
[\b]
Run Code Online (Sandbox Code Playgroud)
这确实会匹配退格字符.它只是一个ASCII控制字符,可以出现在文本中(ASCII代码8,或八进制的10).我认为它主要用于遗留原因,添加变音标记(例如,你可以做a,退格,´获取á).今天,这些已经被Unicode组合标记取代.
包含退格的字符串最终将如何显示取决于呈现它的软件.如果退格后面跟着新的其他字符,控制台可能仍然会将光标移回并覆盖那里的光标.要看到这一点,请启动一个交互式脚本控制台(如果你想在JavaScript中试用它,就像node.js一样),然后运行
> console.log("abc\b\bdef")
adef
Run Code Online (Sandbox Code Playgroud)
注意,如果你省略了def,你就得到了abc,因为退格本身并没有删除任何内容.它只会将光标移回.
另一方面,您的浏览器可能只是在输入字段中忽略它.例如,检查Unicode转换器,abc\b\bdef在左下角输入中输入JavaScript输入,点击"转换","字符"输出将不会被bc删除.
顺便说\b一句,字符类中的退格并不是JavaScript独有的,而是以大多数正则表达式的方式解释.
进一步阅读:
p.s*_*w.g 11
在正则表达式的上下文中(在字符类之外)\b并不意味着退格; 它的意思是'单词边界'.有很多用途.例如,
/\bword\b/
Run Code Online (Sandbox Code Playgroud)
会匹配some word但不会someword.
正如m.butter指出的那样,如果将它放在一个字符类中,你可以使用它来匹配退格字符.例如:
var input = "this is a \btest.";
/[\b]/.test(input); // true
Run Code Online (Sandbox Code Playgroud)
| 归档时间: |
|
| 查看次数: |
31770 次 |
| 最近记录: |