Как добавить пробел в регулярное выражение в Javascript

#javascript #regex

#javascript #регулярное выражение

Вопрос:

У меня есть строка {{my name}} , и я хочу добавить пробел в регулярное выражение

 var str = "{{my name}}";

var patt1 = /{{w{1,}}}/gi; 

var result = str.match(patt1);

console.log(result);
 

Но результат не соответствует.

Любое решение для этого.

Комментарии:

1. Куда вы хотите добавить пробел?

2. используя ваш шаблон .. /{{w{1,} w{1,}}}/gi

3. s — будет соответствовать точному одному пробелу

4. Привет, после этого, один из ответов решил это для вас, или вопрос все еще существует?

Ответ №1:

Укажите символ слова w и символ пробела s внутри класса символов [] ,

 > var patt1 = /{{[ws] }}/gi; 
undefined
> var result = str.match(patt1);
undefined
> console.log(result);
[ '{{my name}}' ]
 

Приведенное выше регулярное выражение такое же, как /{{[ws]{1,}}}/gi

Объяснение:

  • { — Соответствует буквальному { символу.
  • { — Соответствует буквальному { символу.
  • [ws] — символ слова и символ пробела задаются внутри класса символов. Оно соответствует одному или нескольким символам слова или пробела.
  • } — Соответствует буквальному } символу.
  • } — Соответствует буквальному } символу.

Комментарии:

1. мне также нужна строка, содержащая последовательность не менее 1

2. [ws] соответствует символу слова или символу пробела одному или нескольким.

Ответ №2:

Попробуйте это

 ^{{[a-z]*s[a-z]*}}$
 

Объяснение:

  • { — соответствует буквальному символу {.
  • { — соответствует буквальному символу {.
  • [a-z]* — будет соответствовать нулю или более символов
  • s — будет соответствовать точному одному пробелу
  • } — соответствует буквальному символу }.
  • } — соответствует буквальному символу }.

Если вам нужен обязательный символ, то используйте вместо *.

Ответ №3:

Чтобы соответствовать этому шаблону, используйте это простое регулярное выражение:

 {{[^}] }}
 

Демонстрация показывает, что соответствует шаблону, а что нет.

В JS:

 match = subject.match(/{{[^}] }}/);
 

Чтобы выполнить замену вокруг шаблона, используйте это:

 result = subject.replace(/{{[^}] }}/g, "Something$0Something_else");
 

Объяснение

  • {{ соответствует вашим двум открывающим фигурным скобкам
  • [^}] соответствует одному или нескольким символам, которые не являются закрывающей фигурной скобкой
  • }} соответствует вашим двум закрывающим фигурным скобкам

Комментарии:

1. К вашему сведению, добавлена демонстрация того, что соответствует шаблону, а что нет. 🙂