【问题标题】:Javascript .search() issue Uncaught SyntaxError: Invalid regular expression: /*/: Nothing to repeatJavascript .search() 问题 Uncaught SyntaxError: Invalid regular expression: /*/: Nothing to repeat
【发布时间】:2014-01-01 01:14:36
【问题描述】:

谁能帮我解释一下这个错误,我们这里有:

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

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

未捕获的 SyntaxError:无效的正则表达式:/*/:Nothing to 重复

知道为什么会显示这样的错误吗?

【问题讨论】:

标签: javascript


【解决方案1】:

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

【讨论】:

  • indexOf 在你的使用中比搜索更有用。很好的答案。
【解决方案2】:

搜索需要一个正则表达式作为参数。

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

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

要将* 用作字符,您必须对其进行转义:

\*

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

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

+ 也是同样的受保护字符。

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

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

【讨论】:

  • 但我没有搜索 * 实际上是静态值 * 搜索将迭代的值之一。
  • math_operators=["*","/","+","-"]
猜你喜欢
  • 2015-09-22
  • 2021-02-02
  • 2022-01-09
  • 2022-06-28
  • 2017-06-24
  • 2020-02-19
  • 2022-12-02
  • 1970-01-01
  • 1970-01-01
相关资源
最近更新 更多