![](/img/trans.png)
[英]how to replace multiple words using javascript replace() function?
[英]replace multiple words using javascript?
我正在使用以下代码在输入字段中用空白替换一个单词。
但是,我希望能够用空白替换多个单词。
基本上,我需要创建一个单词过滤器,以便用户无法键入某些单词。
HTML代码
<input type="text" id="demo" name="demo" onkeyup="myFunction()" onkeydown="myFunction()" />
JavaScript代码:
<script>
function myFunction() {
var words = "badword1";
var str = document.getElementById("demo").value;
var res = str.replace(words, " ");
document.getElementById("demo").value = res;
}
</script>
我已经尝试过这样的事情:
<script>
function myFunction() {
var words = "badword1 || badword2 || bad word3";
var str = document.getElementById("demo").value;
var res = str.replace(words, " ");
document.getElementById("demo").value = res;
alert('that word is not allowed!');
}
</script>
但这不起作用。
首先,它不会用empty space
替换任何给定的badword(s)
,其次,它会触发aler();
我在输入字段中输入第一个字母后立即显示消息!
有人可以帮我这个忙吗?
使用正则表达式:
var words = new RegExp("badword1|badword|bad word3", g);
实际上,您不应该信任客户端代码...
像这样的东西需要输入错误的单词数组...遍历它们会创建一个全局正则表达式,然后用它替换它...如果更改了放置警报,则会比较原始字符串和结果字符串。
var badwords = ['badword1','badword2','badword3']; //array of badwords
function myFunction() {
var str = document.getElementById("demo").value;
var res = str;
for (var i = badwords.length - 1; i >= 0; i--) {
var badword = badwords[i];
badWordRegex = new RegExp(badword, 'g');
res=res.replace(badWordRegex, " ");
};
document.getElementById("demo").value = res;
if (str !== res){
alert('that word is not allowed!');
}
}
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.