1 javascript regex special-characters
我有一个正则表达式来搜索特殊字符.
当我搜索数字时,例如3,当我期望得到-1时,我总是得到0.
'3'.search(/[!\"£\$%\^&\*\(\)-_\+=\[\]\{\};:@\'#\\|<,\.>\/\?]/)
Run Code Online (Sandbox Code Playgroud)
知道为什么会这样吗?
\)-_
Run Code Online (Sandbox Code Playgroud)
这会导致字符类包含)和之间的所有字符_,即)*+,-./0123456789:;<=>?@ABCDEFGHIJKLMNOPQRSTUVWXYZ[\]^_.3就是其中之一.
本-应放置在开始或结束,这样才不会被算作一个特殊字符.此外,除了\,[,]和/,没有必要为了逃避字符类东西.
/[-!"£$%^&*()_+=\[\]{};:@'#\\|<,.>\/?]/
Run Code Online (Sandbox Code Playgroud)
(从技术上讲,[它也不需要被转义,但为了保持一致性,我宁愿逃避它.另外,-如果你逃脱它,你可以在中间匹配\-.)