2013-03-06 83 views
0

我嘗試在javascript上使用正則表達式來刪除一些不需要的單詞。例如,我的基本字符串是 。「David Guetta avi!」 2.「大衛·庫塔AVI喇嘛喇嘛」 3.「大衛·庫塔的AVI」javascript正則表達式只刪除完整的單詞

我想刪除「AVI」,如你所見,在第一串的AVI的空間和感嘆號,包裹第二個字符串由空格包裹,第三個字符串僅由右側的空格包裝。

如果我使用.replace(/ avi/s,'');它會從David刪除avi(將是Dd)。 我需要寫正則表達式的幫助,它將刪除未包裹或由符號包裹的特定單詞(也包括空格)。

謝謝:)

+0

你也想刪除它旁邊的空白嗎?非空白字符,如'!'這樣的非單詞字符,是否也將其刪除? – 2013-03-06 10:05:28

回答

1

您是否嘗試過使用單詞邊界特殊字符? 所以,正則表達式是:

\b<word>\b 
0

什麼

\W\avi\W{0,1} 

\W代表任何非單詞字符。

您也可以嘗試

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

其中[^a-zA-Z]a-zA-Z什麼

+0

'\ W {0,1}'與'\ W?'相同:) – 2013-03-06 10:07:40

+0

@Jack不,'\ W {0,1}'表示零個或一個字符,而\ \ W'恰好是一個字符。其實我認爲你應該使用它,而不需要編輯'{0,1}':) – alestanis 2013-03-06 10:14:03

+0

@Jack以從第一個非單詞字符中移除「{0,1}」修飾符。我想你應該把它留給第二個非單詞字符,否則你不會刪除字符串末尾的'avi':'David Guetta avi' – alestanis 2013-03-06 10:16:43

0

我結合@Evan回答爲符號去除的正則表達式+雙空間移除和最後的答案是:

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

謝謝大家:)

相關問題