javascript正则表达式只删除完整的单词

时间:2013-03-06 10:01:21

标签: javascript regex

我尝试在javascript上使用正则表达式来删除一些不需要的单词。 例如,我的基本字符串是 1.“David Guetta avi!” 2.“David Guetta avi bla bla” 3.“David Guetta的avi”

我想删除“avi”,如你所见,在第一个字符串中用空格和感叹号包裹的avi,第二个字符串用空格包裹,第三个字符串仅用右边的空格包裹。

如果我使用.replace(/ avi / s,'');它也会从大卫那里移除avi(将是Dd)。 我需要写regexp的帮助,这将删除未被符号包裹或包裹的特定单词(也可以删除任何空格)。

谢谢:)

3 个答案:

答案 0 :(得分:1)

您是否尝试使用边界特殊字符? 所以正则表达式将是:

\b<word>\b

答案 1 :(得分:0)

怎么样?
\W\avi\W{0,1}

\W代表任何非单词字符。

您也可以尝试

[^a-zA-Z]avi[^a-zA-Z]{0,1}

其中[^a-zA-Z]a-zA-Z的任何内容。

答案 2 :(得分:0)

我已将@Evan的答案合并到符号删除正则表达式+双空格删除中,最终的答案是:

mystring.replace(/[^\w\s]|\bavi\b|\s{2,}/gi,'');

谢谢大家:)