原文链接:JS正则表达式
正则表达式基础:正则表达式基础
欢迎来到我的个人网站:TanJia
常用的正则表达式:
1.验证是否为有效数字
可能出现+ -号,也可能不出现 [+-]?
一位0-9都可以,多位首位不能是0 (\d|([1-9]\d+))
小数部分可能有可能没有,一旦有后面必须有小数点+数字 (\.\d+)?
let num = /^[+-]?(\d|([1-9]\d+))(\.\d+)?$/
console.log(num.test("2.1")) /* true */
console.log(num.test(".1")) /* false */
2.验证密码
数字 字母 下划线 6-16位
let psd = /^\w{6,16}$/
console.log(psd.test("32873dhsj_@sa")) /* false */
console.log(psd.test("32873dhsj_sa")) /* true */
3.验证真实姓名
汉字 /^[\u4E00-\u9FA5]$/
名字长度 2-10位
可能有译名 ·汉字 (·[\u4E00-\u9FA5]{2,10}){0,2}
如:"尼古拉斯·谭一"
let name = /^[\u4E00-\u9FA5]{2,10}(·[\u4E00-\u9FA5]{2,10}){0,2}$/
console.log(name.test("打撒大厦的")) /* true */
console.log(name.test("大多数都是·")) /* false */
4.验证邮箱
开头 数字字母下划线(1到多位)
还可以是 -数字字母下划线或者.数字字母下划线,整体0到多次
@数字和字母
多域名: .com.cn
企业邮箱: ztx@tanjia-off-office.com
let email = /^\w+((-\w+)|(\.\w+))*@[A-Za-z0-9]+((\.|-)[A-Za-z0-9]+)*\.[A-Za-z0-9]+$/
console.log(email.test("adsajdh@dsad-dsds.ds-h.ds")) /* true */
5.身份证号
一共十八位
前六位:省市县
中间八位:年月日
最后四位:
最后一位 X或者数字
倒数第二位 偶数女 奇数男
最后一位可能是X
let card = /^(\d{6})(\d{4})(\d{2})(\d{2})\d{2}(\d)(\d|X)$/
console.log(card.test("42108218880888423X")) /* true */
console.log(card.exec("42108218880888423X")) /* ["42108218880888423X", "421082", "1888", "08", "88", "3", "X", index: 0, input: "42108218880888423X"] */