JavaScript search () не может найти "()" - PullRequest
4 голосов
/ 20 октября 2010

Это может показаться тривиальным, но я новичок в JS.У меня есть этот кусок кода:

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

elementAction это строка.Проблема с кодом в том, что он не находит круглых скобок.В первом окне предупреждения показано, например: outer(inner) Но второе не отображается вообще.Все круто, если я заменю () на {}.Любые мысли, почему это не работает для меня?

Ответы [ 2 ]

11 голосов
/ 20 октября 2010

Да: метод строк search() ожидает регулярное выражение в качестве параметра и обрабатывает передаваемую вами строку как шаблон регулярного выражения, в котором круглые скобки имеют особое значение. Используйте indexOf() вместо:

alert( elementAction.indexOf("(") ); 
7 голосов
/ 20 октября 2010
elementAction.search("\\(");

поиск - регулярное выражение, (ключевое слово в регулярном выражении. Вы должны экранировать от ( до \(, \( в строке "\\("

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...