2014-03-27 40 views
1

我希望我的聊天系統擺脫一些特殊字符(換句話說,如果用戶在輸入框中鍵入這些字符,它們將不會出現)。正則表達式,替換特殊字符

我想「擺脫」的字符是:

() { } [ ] . , ; : " ' 

目前,我有以下代碼:

function checkValue() { 
var value = document.getElementById("thisinput").value; 
var unspeakables = ['shout', 'message'], 
    formatting = { 
     'shout' : { 
      'color' : 'red' 
     }, 
    }; 
$('#output').html(value.replace(new RegExp('\\b' + unspeakables.join('\\b|\\b') + '\\b','gi'), 
function(matchedWord) { 
    $('#output').css(formatting[matchedWord.toLowerCase()] || {}); 
    return ''; 
})); 

希望有人能幫助我在這裏!

+0

問題是什麼?你是否開始使用硬編碼的正則表達式,而不是動態生成的? – zerkms

回答

0

刪除此正則表達式匹配任何字符:

[(){}[\].,;:"'] 
0

轉義這些字符,並且使用帶有 'G' 選項替換功能:

value.replace(/[\(\)\{\}\[\]\.\,\;\:\"\']/g, '') 

查看匹配正則表達式的例子:http://rubular.com/r/KlbChdvec3

+0

現在它消除了'留言'和'留言'。我添加了'$('#output')。html(value.replace(/[\(\)\{\}\[\]\.\,\;\::\"\']/ g,'' ));'在函數的底部 – WalkOfLife