#javascript
#javascript
Вопрос:
Я пытаюсь найти символ » » внутри строки и получаю эту ошибку:
error: Uncaught SyntaxError: Invalid regular expression: / /: Nothing to repeat
Это пример кода для эмуляции ошибки, с которой я сталкиваюсь:
var chars1 = 'ABCDEFGHIJLMNOPQRSTUVXZYWK ~!@#$%^amp;*()';
var char = ' ';
var pos = -1;
pos = chars1.search(char);
console.log(pos);
Как я могу искать такие символы в строке?
Комментарии:
1. Требуется двойная косая
\
черта, результат27
2. Спасибо, ребята, я попытался избежать этого, используя только одну косую черту, а затем косая черта вызывала ту же проблему. 😡
Ответ №1:
Если вы хотите искать только текст, вы можете использовать String#indexOf
, что избавляет от необходимости экранировать метасимволы регулярных выражений.
var chars1 = 'ABCDEFGHIJLMNOPQRSTUVXZYWK ~!@#$%^amp;*()';
var char = ' ';
var pos = -1;
pos = chars1.indexOf(char);
console.log(pos);
Комментарии:
1. Вау! это еще лучше! полностью устраняет проблему, не экранируя специальные символы! Большое вам спасибо!
Ответ №2:
это специальный символ, поэтому его нужно экранировать. Попробуйте:
var chars1 = 'ABCDEFGHIJLMNOPQRSTUVXZYWK ~!@#$%^amp;*()';
var char = '\ '; //Yes double needed to escape for the search
var pos = -1;
pos = chars1.search(char);
console.log(pos);
Для получения дополнительной информации ознакомьтесь: https://www.regular-expressions.info/characters.html
Комментарии:
1. Спасибо, решил мою проблему. Я пытался избежать этого, используя только одну косую черту, и это вызывало ту же проблему. 😡