在javascript中使用正则表达式的字符'^'

时间:2013-06-22 17:20:22

标签: javascript regex

在javascript中进行regxep匹配时,有没有办法让角色^考虑在内?它似乎是一个特殊的角色,如:

"x^2".match( /[A-z]+[0-9]*/)

返回:

["x^2"]

5 个答案:

答案 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