【问题标题】:Help with JavaScript regular expression帮助 JavaScript 正则表达式
【发布时间】:2011-03-16 00:40:41
【问题描述】:

我需要检查一个字符串是否以以下内容开头:"+="

我试过了

str.search("+="));

str.search("\+\="));

但得到

未捕获的语法错误:无效的常规 表达式:/+=/:无需重复

你能帮我解决这个问题吗,还推荐一个 JavaScript 正则表达式的好资源吗?

【问题讨论】:

    标签: javascript regex


    【解决方案1】:

    试试这个正则表达式:

    /^\+=/.test(str);
    

    如果字符串以+= 开头,它将返回true^(插入符号)表示“从字符串的开头匹配”。 + 需要转义,因为它是一个正则表达式元字符,意思是“前面的一个或多个”(这不是我们想要的)。

    【讨论】:

      【解决方案2】:

      您不需要正则表达式来针对固定子字符串进行测试。只需这样做:

      str.indexOf("+=")===0
      

      【讨论】:

        【解决方案3】:

        您遇到的错误是因为+ 在正则表达式中具有特殊含义。这意味着“先前的模式被重复了 1 次或多次”。因此,要搜索文字 +,您需要使用反斜杠对字符进行转义。

        另外,要在字符串的开头检查它,请以 ^ 开头您的正则表达式

        因此,你想要的模式是^\+=

        【讨论】:

          【解决方案4】:

          一个选项(除其他外)是:

          if(str.substr(0,2) == "+=")
          

          而且我认为如果处理大字符串会是最快的。

          【讨论】:

            猜你喜欢
            • 1970-01-01
            • 2010-09-30
            • 2014-03-24
            • 1970-01-01
            • 1970-01-01
            • 2011-06-10
            相关资源
            最近更新 更多