代码之家  ›  专栏  ›  技术社区  ›  Mateusz Dymczyk

JavaScript search()找不到“……”

  •  4
  • Mateusz Dymczyk  · 技术社区  · 14 年前

    这可能看起来微不足道,但我对JS还不熟悉。我有一段代码:

    alert(elementAction);    
    var argumentsBegin = elementAction.search("(");
    var argumentsEnd = elementAction.search(")");
    alert(argumentsBegin);
    

    elementAction outer(inner) 但第二个根本没出现。不过,如果我用{}替换()的话,一切都很酷。有没有想过为什么这对我不起作用?

    2 回复  |  直到 14 年前
        1
  •  11
  •   Tim Down    14 年前

    是的:那个 search() strings方法需要一个正则表达式作为参数,并将传递的字符串视为正则表达式模式,在该模式中括号有特殊的含义。使用 indexOf() 相反:

    alert( elementAction.indexOf("(") ); 
    
        2
  •  7
  •   guilin 桂林    14 年前
    elementAction.search("\\(");
    

    搜索是正则表达式,(是正则表达式中的关键字)。你必须逃跑 ( \( , \( 在字符串中是 "\\("