Ошибка при использовании String.search ("sinh (2"): "Недопустимое регулярное выражение" - PullRequest
0 голосов
/ 18 марта 2012

У меня проблема, как показано ниже:

var test = $("#k_w").val().search("sinh("+parseFloat(sinh_array[i]));

Отладчик показывает ошибку: Uncaught SyntaxError: Invalid regular expression: /sinh(2/: Unterminated group.

sinh_array[i] это числа.

Что не так?

Ответы [ 3 ]

5 голосов
/ 18 марта 2012

Метод String.search преобразует первый аргумент в регулярное выражение.

Вы ищете метод String.indexOf, который ищет строку без преобразования в RegExp.

var test = $("#k_w").val().indexOf("sinh("+parseFloat(sinh_array[i]));
//                         ^^^^^^^ indexOf
2 голосов
/ 18 марта 2012

У вас есть открывающая скобка в вашем регулярном выражении, но нет закрывающей скобки.

Я думаю, что вы действительно хотите, это:

var test = $("#k_w").val().search("sinh\\("+parseFloat(sinh_array[i]) + "\\)");

Я подозреваю васхотите соответствовать фактическому паренсу, а не создавать группу.

0 голосов
/ 18 марта 2012

Вы должны избегать скобок в регулярных выражениях; в противном случае они начинают группу совпадений и поэтому должны быть снова закрыты.

var test = $("#k_w").val().search("sinh\\("+parseFloat(sinh_array[i]));
...