我想限制“'[] \在html textarea中输入

时间:2016-05-06 06:40:21

标签: html5

我想限制"'[]\在HTML <textarea>中输入内容。我的代码在这里:

<textarea rows="5" id="comment" maxlength='500'
  onkeyup="this.value = this.value.replace(/[$&*%^#!~`(){}:;<>?|,=+-]/g, '')"
  placeholder="Enter your query.">
</textarea>

3 个答案:

答案 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)

&#13;
&#13;
<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;
&#13;
&#13; 你可以使用它。