Closed. This question needs details or clarity。它当前不接受答案。
                        
                    
                
            
        
            
        
                
                    
                
            
                
                    想改善这个问题吗?添加详细信息并通过editing this post阐明问题。
                
                    6年前关闭。
            
        

    

我正在使用以下代码从聊天文本中删除单词:

for(var i =0; i <db.banned_words.length ;i++){
    cleaned_msg = cleaned_msg.replace(new RegExp(db.banned_words[i], 'g'), '');
}


问题是,如果cleaned_msg仅具有一个禁用词之一,则不会将其从cleaned_msg中删除。


cleaned_msg ='鸭子';如果duck是被禁止的单词之一,那么在替换后,cleaned_msg应该为“”,但它是“ duck”。

如果cleaned_message具有任何其他空格或字符,则可以正常工作。前小鸭返回“ ie”; 'duck'返回''。

最佳答案

您的方法应该有效,因此您的问题可能在其他地方。但是,我可以建议您使用其他方法吗?

var banned_words = ['duck', 'cool', 'test'],
    banned_words_rx = new RegExp('\\b(' + banned_words.join('|') + ')\\b', 'gi');

'this duck is very cool, so cool that I used it to test this thing'.replace(banned_words_rx, '');

关于javascript - 字符串与搜索词完全匹配时如何替换文本,我们在Stack Overflow上找到一个类似的问题:https://stackoverflow.com/questions/16513192/

10-09 05:31