Js常用正则表达式总结
1、限制输入数字、字母、短横线
<input onkeyup="this.value=this.value.replace(/[^\w\-]/g,'')" onpaste="this.value=this.value.replace(/[^\w\-]/g,'')" />
2、限制输入数字、一个小数点
<input onkeyup="this.value=this.value.replace(/[^\d^\.]+/g,'').replace('.','$#$').replace(/\./g,'').replace('$#$','.')" />
3、限制只能输入数字
<input onkeyup="this.value=this.value.replace(/[^\d]/g,'');" type="text" />
4、限制只能输入中文
<input onkeyup="value=value.replace(/[^\u4E00-\u9FA5]/g,'')" onbeforepaste="clipboardData.setData('text',clipboardData.getData('text').replace(/[^\u4E00-\u9FA5]/g,''))">
5、限制不能输入空格
<input onkeyup="this.value=this.value.replace(/^ +| +$/g,'')" />
6、验证手机号
规则是:第一位是【1】开头,第二位则则有【3,4,5,6,7,8,9】,第三位则是【0-9】,第三位之后则是数字【0-9】。从而我们可以得出一个符合当前的手机号码验证正则表达式。
// 以下两种验证规则相同
var reg1 = /^1[3|4|5|6|7|8|9][0-9]{9}$/;
var reg2 = /^[1][3,4,5,6,7,8,9][0-9]{9}$/;
var phoneNum = '18001356755'; //手机号码
var flag = reg1.test(phoneNum); //true
// 但可以做的更灵活,还可以不验证第二位规则:因为谁也不确定以后还新增什么开头?
ar reg = /^1[0-9]{10}$/;
7、防止 XSS 攻击
xssFilter(keys);
xssFilter (orgString) {
orgString = orgString.replace(/</g, '').replace(/>/g, '');
return orgString;
}
8、验证邮箱
规则:以数字字母开头,中间可以是多个数字字母下划线或 “-” ,然后是 “@” 符号,后面是数字字母,然后是 “.” 符号加2-4 个字母结尾。
<input type="text" placeholder="请输入邮箱" id="email">
<script>
email.onchange = function () {
var email = this.value;
var reg = /^([a-zA-Z]|[0-9])(\w|\-)+@[a-zA-Z0-9]+\.([a-zA-Z]{2,4})$/;
if (reg.test(email)) {
alert("邮箱格式正确");
} else {
alert("邮箱格式不正确");
}
}
</script>