2011-03-09 28 views
1

我需要的是匹配包含特殊符號(除?,!和。)以及URL之外的詞的東西。 這是我已經有的,但它不工作。Javascript正則表達式問題:去掉特殊符號和URL的

re = new RegExp('(http://\S+|\S*[^\w\s,.":]\S*)'); 

text = '@hello how are you? http://example.com'; 
clean = text.replace(re, ''); 

的電流輸出爲:

> 'hello how are you? http://example.com' 

輸出應該是:

> ' how are you? ' 
+1

你會得到什麼輸出? – Belinda

+0

我已經添加了輸出 – user216171

回答

1

您需要在RE

text.replace(/(http:\/\/\S+|\S*[^\w\s,.":?]\S*)/g,''); 

我也加入到使用全局 「?」因爲它似乎你想要包括在內。

0

我不知道太多關於JavaScript,Java中我會做到這一點:

clean = input.replaceAll("(http://\\S+|\\S*[^\\w\\s\\?,.\"!:]\\S*)", ""); 

如果你不需要轉義特殊的c漢字,刪除反斜槓。

問候!

+0

這從我的例子中刪除了@hello,但是URL仍然是 – user216171

+0

您必須使用replaceAll或者設置全局標誌,否則只會替換第一個匹配項。 – redent84

1
re = /(http:\/\/\S+|\S*[^\w\s,\.\?":]\S*)/ig; 

text = '@hello how are you? http://example.com'; 
clean = text.replace(re, '');