繁体   English   中英

验证特殊字符不起作用

[英]Validation for special characters not working

这是我的代码

<!DOCTYPE html>
<html>
<script>
function isSpclChar() {

    var iChars = "!@#$%^&*()+=-[]\\\';,./{}|\":<>?";
    if (document.getElementById('edit_tagline').value.indexOf(iChars) != -1) {
        alert("The box has special characters. ");
    } else {
        alert("No special character");
    }
}
</script>
<body>

   <input type="text" id="edit_tagline" onblur="isSpclChar()">

</body>
</html> 

我的第一个问题为何此验证无效?

我的第二个问题是,有人可以向我解释这一行的含义吗?

if(document.getElementById('edit_tagline').value.indexOf(iChars) != -1)

因为我不熟悉JavaScript,然后从我不知道它起作用的地方复制粘贴代码。

如果有人可以向我解释这段代码的工作,那么好吗?

iChars不是字符范围,而是将其视为一个单词。 为此,您需要实现一个正则表达式。

这是一个利用jQuery简洁的javascript验证示例。 希望您可以在自己的环境中使用它。 我自由地使用字母字符和否定表达式,而不是写出所有可能的特殊字符(包括unicode范围在内有数百种!)。

$('button').click(function () {
    if (!(/^[a-zA-Z0-9]+$/i).test($('#edit_tagline').val())) {
        alert("The box has special characters. ");
    } else {
        alert("No special character");
    }
});

HTML:

<input type="text" id="edit_tagline">
<button>Test</button>

工作示例: http : //jsfiddle.net/remus/9jwGW/

如果您对正则表达式不熟悉,最好先阅读一下正则表达式的工作原理(并查看http://regex101.com ),然后再进行进一步的研究。

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM