2013-05-20 8 views
0

我不知道我想要的名字,所以我会告诉你。如何通过js从文本中删除泛滥?

我有一个输入文本,用户可以提问,但也有一些网友提出这样的问题: What the?????????????????????%%%%%%Question?????????????????????? .... 或!!!!!!?????? ....等

我想从我的javascript变量中删除这些字符串。哪个功能会帮助我?什么是我正在寻找的英文名字?

谢谢。

+2

但从可用性角度,你不应该。 StackOverflow甚至不会阻止你这样做。另外,“泛滥”的标准是什么?如果我输入了一个随机的,非模式的字符组合,它仍然泛滥吗?你怎么知道的?如果我输入了'??!@!@@@@#!!$ %%!@ %%#%#%#$#@#$!@ ##',它会计数吗? – Joseph

+1

将什么归类为“洪水”?连续出现多少次? – Dogbert

+0

当这个问题只是'????????????????'时,这就是泛滥。这不是一个真正的问题。我们的网页不适合程序员,这是为了简单的问题,但如果用户看到大量的垃圾邮件问题,他们就不会使用它。我想在一个问题中你不使用这个'''',你用这个'?'..只有一个问号或'这是什么?怎么样?'这也是好的... – user2301881

回答

2

例在JavaScript,但正则表达式会在其他语言非常相似:

var compressSpecialChars = function(str) { 
    return str.replace(/[^\w\d\s]+/g, function(specials) { return specials[0] }); 
}; 

var questions = [ 
    'What the?????????????????????%%%%%%', 
    'Question??????????????????????', 
    '!!!!!!??????' 
]; 

questions.map(compressSpecialChars); 
// Result: ["What the?", "Question?", "!"] 
+0

你知道吗:'我饿了,但我应该吃什么?'...',也是特殊的字符.. :-( – user2301881

+1

哎呀,我没有想过“,”首先筛选所有其他特殊字符,然后用另一个正则表达式过滤“。”:'str.replace(/ [。] { 3,}/g,'...')' –