Warning: file_get_contents(/data/phpspider/zhask/data//catemap/0/search/2.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
JavaScript search()未能找到;()";_Javascript_Search - Fatal编程技术网

JavaScript search()未能找到;()";

JavaScript search()未能找到;()";,javascript,search,Javascript,Search,这可能看起来很琐碎,但我对JS是新手。我有一段代码: alert(elementAction); var argumentsBegin = elementAction.search("("); var argumentsEnd = elementAction.search(")"); alert(argumentsBegin); elementAction是一个字符串。代码的问题在于它似乎找不到括号。第一个警报框显示,例如: 外部(内部) 但是第二个根本没有出现。不过,如果我将()替换

这可能看起来很琐碎,但我对JS是新手。我有一段代码:

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("\\(");