我尝试停止在字符串中匹配的单引号(')
时遇到此问题。
以下是Chrome中控制台会话的摘录。 Params是我想要匹配的正则表达式(不应该允许单引号或双引号?)。由于文本中的单引号,我原本预计前两位高管会找到一场比赛,而后两位将失败。
假设这提出了两个问题:
感谢
> params
>
>> "^[a-zA-Z0-9 -_/&,()\[\];:+~.!\\]*$"
>
>
> new RegExp(params).exec("some string")
>> ["some string"]
>
> new RegExp("^[a-zA-Z0-9 -_/&,()\[\];:+~.!\\]*$").exec("some string")
>> null
>
>
> new RegExp(params).exec("some string's")
>> ["some string's"]
>
> new RegExp("^[a-zA-Z0-9 -_/&,()\[\];:+~.!\\]*$").exec("some string's")
>> null
答案 0 :(得分:1)
^[a-zA-Z0-9 _/&,()[];:+~.!\-]*$
始终将-
放在最后或escape
,以避免形成无效范围。
此处-
形成从space
32
到_
95
的范围。'
是39
所以它属于{{1}}在无效范围之间,所以匹配。