如何在Javascript中的正则表达式中添加空格

时间:2014-06-24 06:59:22

标签: javascript regex

我有一个字符串{{my name}},我想在正则表达式中添加空格

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

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

var result = str.match(patt1);

console.log(result);

但导致不匹配。

任何解决方案。

3 个答案:

答案 0 :(得分:1)

在字符类\w中添加字符\s和空格字符[]

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

上述正则表达式与/\{\{[\w\s]{1,}\}\}/gi

相同

<强>解释

  • \{ - 匹配文字{符号。

  • \{ - 匹配文字{符号。

  • [\w\s]+ - 在Character类中给出单词字符和空格字符。它匹配一个或多个单词或空格字符。

  • \} - 匹配文字}符号。

  • \} - 匹配文字}符号。

答案 1 :(得分:1)

试试

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

说明:

  • \ { - 匹配文字{symbol。

  • \ { - 匹配文字{symbol。

  • [a-z] * - 将匹配零个或多个字符

  • \ s - 将匹配确切的一个空格

  • \} - 匹配文字符号。

  • \} - 匹配文字符号。

如果你想要强制性角色,那么使用+代替*。

答案 2 :(得分:0)

要匹配此模式,请使用此简单的正则表达式:

{{[^}]+}}

demo显示模式匹配和不匹配的内容。

在JS中:

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

要围绕模式进行替换,请使用:

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

解释

  • {{匹配您的两个开口大括号
  • [^}]+匹配一个或多个不是右括号的字符
  • }}匹配您的两个结束括号