[英]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.