常见正则表达式应用

正则表达式使用的基本语法:

常见的 $ 和 ^ 两个特殊符号,^是指出一个字符串的开始,$是一个字符串的结束。正则表达式通常有两个/包裹,如下:

/^[ ]$/

1、用户名正则

常见的平台用户名都是由数字、字母、下划线组成的6-20位,正则表达式使用如下

var reg = /^[0-9A-Za-z_]{6,20}$/;

reg.test("WEB")//位数不够,返回false

reg.test("shareWeb") //返回true

2、密码正则

常见为了保证密码安全不易被破解,所以大多数限制包括至少1个大写字母,1个小写字母,1个数字,1个特殊字符长度为6-20位。正则如下:

var reg = /^.*(?=.{6,20})(?=.*\d)(?=.*[A-Z])(?=.*[a-z])(?=.*[!@#$%^&*?]).*$/

3、姓名正则

常见的限制姓名为中文,长度2-6位。

var reg = /^[\u4E00-\u9FA5]{2,6}$/

4、手机号正则

手机号规则就是统一的11位数字,必须是1开头的,第二位要限制到3、5、6、7、8、9中,后边的9位是0-9之间。

var reg = /^1[356789]\d{9}$/ //方式1

var reg = /^1(3|5|6|7|8|9)\d{9}$/ //方式2

5、身份证号正则

var reg = /^[1-9]\d{5}(18|19|([23]\d))\d{2}((0[1-9])|(10|11|12))(([0-2][1-9])|10|20|30|31)\d{3}[0-9Xx]$/;

6、邮箱正则

邮箱有QQ、网易、阿里等邮箱,限制的时候需要考虑各个邮箱后缀名,账号名规则。

var reg = /^([A-Za-z0-9_\-\.])+\@([A-Za-z0-9_\-\.])+\.([A-Za-z]{2,4})$/

7、车牌号正则

var reg = /^[京津沪渝冀豫云辽黑湘皖鲁新苏浙赣鄂桂甘晋蒙陕吉闽贵粤青藏川宁琼使领A-Z]{1}[A-Z]{1}[A-Z0-9]{4}[A-Z0-9挂学警港澳]{1}$/

8、微信号正则

var reg = /^[a-zA-Z]([-_a-zA-Z0-9]{5,19})+$/

9、QQ号正则

var reg = /^[1-9][0-9]{4,10}$/

10、包含中文正则

var reg = /[\u4E00-\u9FA5]/

11、数字类型正则

正整数:var reg = /^\d+$/

负整数:var reg = /^-\d+$/

整数: var reg = /^-?\d+$/

正数: var reg = /^\d*\.?\d+$/

负数: var reg = /^-\d*\.?\d+$/;

学完上述正则,如何应用在限制输入呢?

举例:使用姓名正则进行示范,姓名只能是汉字,不能输入其他数字字母等,如果是除汉字以外的其他内容需要清除。

<input id="username" type="text" onkeyup="checkName(this)">

<script>

function checkName(a){

var reg = /^[\u4E00-\u9FA5]{2,4}$/

var re = /^[\u4E00-\u9FA5]+$/

var str = a.value;

if( ! re.test(a.value) ){

str = str.substr(0,str.length-1)

}

}

</script>