JavaScript search()未能找到;()";
这可能看起来很琐碎,但我对JS是新手。我有一段代码:JavaScript search()未能找到;()";,javascript,search,Javascript,Search,这可能看起来很琐碎,但我对JS是新手。我有一段代码: alert(elementAction); var argumentsBegin = elementAction.search("("); var argumentsEnd = elementAction.search(")"); alert(argumentsBegin); elementAction是一个字符串。代码的问题在于它似乎找不到括号。第一个警报框显示,例如: 外部(内部) 但是第二个根本没有出现。不过,如果我将()替换
alert(elementAction);
var argumentsBegin = elementAction.search("(");
var argumentsEnd = elementAction.search(")");
alert(argumentsBegin);
elementAction
是一个字符串。代码的问题在于它似乎找不到括号。第一个警报框显示,例如:
外部(内部)
但是第二个根本没有出现。不过,如果我将()替换为{},一切都很好。想一想为什么这对我不起作用吗?是的:strings的search()
方法需要一个正则表达式作为参数,并将要传递的字符串视为正则表达式模式,其中括号具有特殊意义。改用indexOf()
:
alert( elementAction.indexOf("(") );
搜索是正则表达式,(是正则表达式中的关键字。您必须将(
转义到\(
)中,
\(
在字符串中是“\\”(“
你到底想做什么?试试var arg=elementAction.match(/\\([^)]*\)/);
elementAction.search("\\(");