Javascript .search()问题Uncaught SyntaxError:无效的正则表达式:/ * /:无需重复

时间:2014-01-01 01:14:37

标签: javascript

任何人都可以为我解释这个错误,我们在这里有:

if(statements[bracket].firsthalf.search(math_operators[j])!=-1)

其中statements[bracket].firsthalf = "2*a"math_operators[j]="*",控制台显示以下错误:

  

Uncaught SyntaxError:无效的正则表达式:/ * /:没什么用   重复

任何想法为什么会出现这样的错误?

enter image description here

2 个答案:

答案 0 :(得分:12)

使用indexOf,而不是searchindexOf查找文字字符串,search用于匹配正则表达式。在正则表达式中,大多数标点字符具有特殊含义,如果您想从字面上找到它们,则需要进行转义,这就是您收到错误的原因。

答案 1 :(得分:0)

搜索需要使用RegularExpression作为参数。

*用于表示前一个表达式的0或更多。

[0-9]* = 0或更多位数。

要将*用作角色,您必须逃避它:

\*

您必须将搜索部分写为正则表达式。

2*a".search(*)没有意义,因为它不会搜索字符(*),而是搜索0或更多时间,因为*之前没有任何内容。

对于+来说,受保护的角色也是如此。

您应该使用其他功能,而不是以符合RegularExpression的方式搜索或编写您的请求,例如:

search([\*|\+|\-|\/])