限制用户键入字符

时间:2016-01-13 06:46:05

标签: javascript html

我有一个文本框。我想限制用户输入像

这样的html不安全字符
" < > # % { } | \ ^ ~ [ ] `.

任何人都可以告诉我在javascript函数中必须使用的正则表达式来限制用户在文本框中键入不安全的字符。

4 个答案:

答案 0 :(得分:2)

假设你的意思是字母数字......你会想要类似下面的东西 - 显然这是粗糙的,没有选择实际的元素等等......而且你想要一个函数(按键)或者一些东西缠在它周围。

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;
function isClean(s) {
return ['"', '<', '>', '#', '%', '{', '}', '|', '\\', '^', '~', '[', ']', '`', '.'].indexOf(s) !== -1
}

答案 1 :(得分:1)

您可以使用以下js:

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

参考HERE

答案 2 :(得分:1)

试试这个:JSFiddle

myFunction = function(event) {
    var x = event.which || event.keyCode;
    document.getElementById("demo").innerHTML = "The Unicode value is: " + x;
    if(x.toString().match(/^(60|62|35)$/)){
         document.getElementById("alert").innerHTML = "This is unsafe character";
    }else {
        document.getElementById("alert").innerHTML = "";
    }
}

使用键码检查角色是否安全。这里60 =&gt; &#34;&LT;&#34 ;; 62 =&gt; &#34;&GT;&#34;和35 =&gt; &#34;#&#34; ,只需添加你想要的角色代码。

答案 3 :(得分:1)

你说你的文本框正确....? 那么你必须处理onkeypress事件

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

function keypresshandler(event)
{
     var charCode = event.keyCode;
     //Non-numeric character range
     if (charCode > 31 && (charCode < 48 || charCode > 57))
     return false;
}