Javascript 限制用户输入字符

Javascript 限制用户输入字符,javascript,html,Javascript,Html,我有一个文本框。我想限制用户键入html不安全字符,如 " < > # % { } | \ ^ ~ [ ] `. “\%{}\^~[]`。 有谁能告诉我,我必须在javascript函数中使用什么正则表达式来限制用户在文本框中键入不安全的字符。假设您指的是字母数字…您将需要以下内容--显然,这是粗糙的,没有选择实际元素等…您将需要一个函数(按键)或者有什么东西包裹着它 var cleantext = /^[0-9a-zA-Z]+$/; if(yourtextbox.value

我有一个文本框。我想限制用户键入html不安全字符,如

" < > # % { } | \ ^ ~ [ ] `.
“<>\%{}\^~[]`。

有谁能告诉我,我必须在javascript函数中使用什么正则表达式来限制用户在文本框中键入不安全的字符。

假设您指的是字母数字…您将需要以下内容--显然,这是粗糙的,没有选择实际元素等…您将需要一个函数(按键)或者有什么东西包裹着它

var cleantext = /^[0-9a-zA-Z]+$/;  
if(yourtextbox.value.match(cleantext))   
  {  
   return true;  
  }  
对于上面的字符,可能需要一个小函数来检查

var s = yourtextbox.value;
var charTest = (function() {
var cleanText = /^[<>#%{}|\\^~\[\]]$/i;
return function(s) {
return cleanText.test(s);
}
})();
var s=yourtextbox.value;
var charTest=(函数(){
var cleanText=/^[\\%{}\\\^-\[\]]$/i;
返回函数{
返回cleanText.test;
}
})();
甚至:

var s = yourtextbox.value;
function isClean(s) {
return ['"', '<', '>', '#', '%', '{', '}', '|', '\\', '^', '~', '[', ']', '`', '.'].indexOf(s) !== -1
}
var s=yourtextbox.value;
功能是清洁(s){
返回['”、“'”、“%”、“{'、“}'、“|”、“\\”、“^'、“~”、“['、”]、“'、”。]”。indexOf(s)!=-1
}
您可以使用以下js:

var specialChars = "!@#$^&%*()+=-[]\/{}|:<>?,.";
for (var i = 0; i < specialChars.length; i++) {
stringToReplace = stringToReplace .replace(new RegExp("\\" + specialChars[i], 'gi'), '');
}
var specialChars=“!@$^&%*()+=-[]\/{}}:?,”;
对于(变量i=0;i
参考

试试这个:


使用键码检查字符是否安全。在这里60=>“”和35=>“#”,只需添加所需字符的键码。

您说您的文本框是对的。。。。? 好的,那么你必须处理onkeypress事件

您可以使用以下函数限制用户在文本框中键入不安全字符

function keypresshandler(event)
{
     var charCode = event.keyCode;
     //Non-numeric character range
     if (charCode > 31 && (charCode < 48 || charCode > 57))
     return false;
}
功能按键处理程序(事件)
{
var charCode=event.keyCode;
//非数字字符范围
如果(字符码>31&(字符码<48 | |字符码>57))
返回false;
}

不安全字符的含义是什么?到目前为止您尝试过什么?我百分之百地确信,在SO中已经有很多这样的线程,而在google中没有。我在下面的问题中提到的字符将破坏html代码。我想在imgi中将textbox值动态绑定到alt标记中,这意味着我上面提到的字符。如果(x.toString().match(/^(?:60 | 62 | 35)$/)这一个不起作用。我像if(x==60 | | x==62)一样检查了一下。我认为比赛中遗漏了一些东西,所以这是你的答案?
function keypresshandler(event)
{
     var charCode = event.keyCode;
     //Non-numeric character range
     if (charCode > 31 && (charCode < 48 || charCode > 57))
     return false;
}