Js常用正则表达式总结

作者: jie 分类: 正则 发布时间: 2023-06-15 16:15

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>

发表回复