Почему это регулярное выражение работает как var pattern = / ... /, а не как var pattern = RegExp ("...")? - PullRequest
1 голос
/ 15 февраля 2010
<script type="text/javascript">
var str="Jestem bardzo, bardzo zadowolony. Można powiedzieć, że jestem również uszczęśliwiony i uspokojony."; 

patt1=new RegExp( "\bi\b", "g"); //<--- (to find the single word: "i")

document.write(str.match(patt1));
</script>

Работает хорошо как var pattern = /\bi\b/g;, но не при использовании RegExp("\bi\b","g"). Зачем? (... заранее спасибо)

1 Ответ

5 голосов
/ 15 февраля 2010

\ - это escape-символ в строках JavaScript.Это также escape-символ в регулярных выражениях!Поскольку вы передаете строку в в конструктор RegExp , вам нужно экранировать escape-символ ...

patt1=new RegExp( "\\bi\\b", "g");
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...