2011-03-09 75 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, '');