Если вы используете RegExp
конструктор, необходимо скрючившись вылетающими, так как есть 2 слоя побега: побег в JavaScript строкового литерала и избежать в регулярных выражениях синтаксиса
Однако в вашем случае, можно написать регулярное выражение, не выделяющиеся при всех
в вашем случае, вы можете просто.. использование литерал RegExp
, в которой вы должны только заботиться о побеге в регулярном выражении синтаксиса, и избежать любого /
, который появляется в регулярном выражении (с /
используются в качестве разделителя для буквального RegExp
:
/^[a-z 0-9"\-`]+$/gi
Другим способ:
/^[a-z 0-9"`-]+$/gi
Вам не нужно избегать тире -
, если он является последним в классе символов. Таким образом, вам не нужно путать себя со всеми побегами.
Или, если вы все еще хотите использовать RegExp
конструктор, вы должны удвоить побег указать \
в строке:
new RegExp('^[a-z 0-9"\\-`]+$', "ig")
Или просто использовать другую версию, где -
указан последним в классе символов :
new RegExp('^[a-z 0-9"`-]+$', "ig")
Обратите внимание, что я изменить строку цитаты из "
в '
, чтобы избежать того, чтобы избежать "
в строке.Если вы по какой-то причине предпочитает "
, бежать "
в буквальном уровне строки:
new RegExp("^[a-z 0-9\"`-]+$", "ig")
Что касается текущего регулярного выражения
new RegExp("^[a-z 0-9\"\-\`]+$", "ig")
эквивалентно
/^[a-z 0-9"-`]+$/gi
As вы можете увидеть диапазон символов от "
- `
, что означает, что все символы с кодом ASCII от 0x22 до 0x60 включены, а #
находится в диапазоне.
Чтобы проверить, является ли шаблон тем, что вы хотите, вы всегда можете вызвать свойство регулярного выражения source
, чтобы получить исходную строку регулярного выражения.
Не могу поверить, что я не смог с этим ...: -0 –
, но посмотрите здесь http://i.stack.imgur.com/guafm.jpg it fu ** все (в визуальной студии) –
так на самом деле \ "будет \\\" ...... grrrrrr –