在javascript中进行regxep匹配时,有没有办法让角色^
考虑在内?它似乎是一个特殊的角色,如:
"x^2".match( /[A-z]+[0-9]*/)
返回:
["x^2"]
答案 0 :(得分:6)
“^”不被视为特殊,它只是在ascii中的“A”和“z”之间(参见http://www.asciitable.com/)。尝试匹配模式[a-zA-Z],而不是仅限于英文字母。
"x^2".match(/[a-zA-Z]+[0-9]*/) // returns ["x"]
答案 1 :(得分:3)
您可以使用\
转义任何特殊字符,以便按字面意思使用它。
"x^2".match(/[A-z]\^[0-9]*/)
答案 2 :(得分:2)
如果您想要的只是字母表中的“真实”字符,请不要使用太宽的[A-z]
。你可能想要
"x^2".match(/\w+/)
或
"x^2".match(/[A-Za-z]+/)
答案 3 :(得分:1)
逃避它,就像你对其他所有角色一样:
match( /\^/ )
答案 4 :(得分:1)
[A-z]
不代表[A-Za-z]
!请参阅unicode表。
要在模式中使用文字^
,您必须将其转义,因为此字符在正则表达式中具有特殊含义。
/[A-Za-Z]\^[0-9]/
OR
/[a-z]\^[0-9]/i
更多信息here