-3

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

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

返回:

["x^2"]
4

5 回答 5

6

“^”不被视为特殊,它只是在 ascii 中介于“A”和“z”之间(参见http://www.asciitable.com/)。尝试匹配模式 [a-zA-Z] 而不是仅限于英文字母。

"x^2".match(/[a-zA-Z]+[0-9]*/) // returns ["x"]
于 2013-06-22T17:23:47.110 回答
3

您可以转义任何特殊字符以\按字面意思使用它。

"x^2".match(/[A-z]\^[0-9]*/)
于 2013-06-22T17:22:26.483 回答
2

如果您想要的只是字母表中的“真实”字符,请不要使用[A-z]太宽的字符。你可能想要

 "x^2".match(/\w+/)

或者

"x^2".match(/[A-Za-z]+/)
于 2013-06-22T17:27:10.613 回答
1

转义它,就像你对每个其他特殊字符所做的那样:

match( /\^/ )
于 2013-06-22T17:22:05.183 回答
1

[A-z]不代表[A-Za-z]!请参阅 Unicode 表。

要在模式中使用文字^,您必须对其进行转义,因为该字符在正则表达式中具有特殊含义。

/[A-Za-Z]\^[0-9]/

或者

/[a-z]\^[0-9]/i

更多信息在这里

于 2013-06-22T17:28:05.950 回答