Flm*_*dfj 4 javascript regex whitespace
我在javascript中看到了这个奇怪的正则表达式.
string = "abababababababa";
string=string.replace(/ ?a ?/g,"X");
alert(string);
Run Code Online (Sandbox Code Playgroud)
我跑了,我得到的输出全部被X取代.令人费解的是正则表达式中的白色空格.我删除了第一个空格,脚本将无法运行.我删除了第二个空白区域,我将一个"a"替换为两个"X".我想知道它是如何工作的.
该空间实际上意味着匹配空格字符(U + 0020).
关键是跟随每个模型的?量词,允许模式为每个模式匹配" 0或1个空格 ",从而使它们成为可选项.
因此,该/ ?a ?/模式能够匹配:
"a""a "" a"" a "并且,尝试删除任一空格将改变模式的含义:
删除前导空格(/?a ?/g)实际上会导致SyntaxError量词需要在量化之前进行量化.
删除尾随空格(/ ?a?/g)在语法上是有效的,但?量词将适用于a,将可能的匹配更改为:
"""a"" "" a"| 归档时间: |
|
| 查看次数: |
337 次 |
| 最近记录: |