我想限制"'[]\
在HTML <textarea>
中输入内容。我的代码在这里:
<textarea rows="5" id="comment" maxlength='500'
onkeyup="this.value = this.value.replace(/[$&*%^#!~`(){}:;<>?|,=+-]/g, '')"
placeholder="Enter your query.">
</textarea>
答案 0 :(得分:0)
如你想要替换它们一样?
在这种情况下,只需将它们添加到字符集中即可。你必须首先用\
来逃避它们:
/[$&*%\^#!~`(){}:;<>?|,=+\-\"\'\[\]\\]/g
我还为其他几个人添加了\
,例如^
和-
,因为它们在方括号内具有特殊含义。
编辑:直接从HTML读取正则表达式时,各种解析器似乎存在问题。即使在JavaScript中,文字形式的正则表达式也是如此。但我找到了解决方案。当我执行以下操作时,Stack Snippets和jsfiddle都会抱怨,以下内容适用于Codepen:
以下是代码:
HTML:
<textarea rows="5" id="comment" maxlength='500' placeholder="Enter your query."></textarea>
JS:
document.querySelector('textarea').addEventListener('keyup', function(e) {
var re = new RegExp(/[\[\]\\\'\"]/, 'g');
this.value = this.value.replace(re, '');
});
答案 1 :(得分:0)
您必须转义RegEx中使用的任何字符。这里[]用于指定表达式。你将不得不使用像这样的东西
<textarea rows="5" id="comment" maxlength='500'
onkeyup="this.value = this.value.replace(/[\[\]]/g, '')"
placeholder="Enter your query." ></textarea>
答案 2 :(得分:0)
<script>
function myFunction(event) {
var x = event.which || event.keyCode;
// " ' [] \
if(x=="16" || x=="222" || x=="219" || x=="221" || x=="220")
{
document.getElementById("comment").value="";
}
}
</script>
<textarea id="comment" onkeyup="myFunction(event)" ></textarea>
&#13;