REC
首页
文章分类
源码资源
技术教程
程序软件
文创娱乐
玄学修炼
关于我们
其他页面
网站统计
友情链接
用户留言
高清壁纸
关于易航
热门文章
Joe再续前缘主题 - 搭建本站同款网站
易航网址导航系统 – 功能强大,轻量易用
JsonDb-PHP轻量级文件数据库系统
Typecho一键调整网站为冬天情景插件
V免签全开源免签约码支付系统(支持:支付宝 微信 QQ)
标签搜索
PHP
Web前端
网站源码
PHP源码
Typecho
Typecho插件
课程资料
Windows程序
Android软件
武术内功
HTML源码
Web
Joe主题
Python
Windows
国漫
网络协议
MySQL
NodeJs
小说
发布
登录
注册
找到
2
篇与
正则表达式
相关的结果
2022-08-05
JS正则常用校验大全
手机号(mobile phone)中国(严谨), 根据工信部2019年最新公布的手机号段 const reg = /^(?:(?:\+|00)86)?1(?:(?:3[\d])|(?:4[5-79])|(?:5[0-35-9])|(?:6[5-7])|(?:7[0-8])|(?:8[\d])|(?:9[189]))\d{8}$/; const str = "19119255642"; console.log(`校验 ${reg.test(str) ? "正确" : "错误"}`);Email(邮箱) const reg = /^(([^<>()[\]\\.,;:\s@"]+(\.[^<>()[\]\\.,;:\s@"]+)*)|(".+"))@((\[[0-9]{1,3}\.[0-9]{1,3}\.[0-9]{1,3}\.[0-9]{1,3}\])|(([a-zA-Z\-0-9]+\.)+[a-zA-Z]{2,}))$/; const str = "90203918@qq.com"; console.log(`校验 ${reg.test(str) ? "正确" : "错误"}`);座机(Tel Phone)电话(国内) 如: 0341-86091234 const reg = /^(?:(?:\d{3}-)?\d{8}|^(?:\d{4}-)?\d{7,8})(?:-\d+)?$/; const str = "0936-4211235"; console.log(`校验 ${reg.test(str) ? "正确" : "错误"}`);身份证号(2代,18位数字),最后一位是校验位,可能为数字或字符X const reg = /^[1-9]\d{5}(?:18|19|20)\d{2}(?:0[1-9]|10|11|12)(?:0[1-9]|[1-2]\d|30|31)\d{3}[\dXx]$/; const str = "12345619991205131x"; console.log(`校验 ${reg.test(str) ? "正确" : "错误"}`);中文姓名 const reg = /^(?:[\u4e00-\u9fa5·]{2,16})$/; const str = "韩小韩"; console.log(`校验 ${reg.test(str) ? "正确" : "错误"}`);英文姓名 const reg = /(^[a-zA-Z][a-zA-Z\s]{0,20}[a-zA-Z]$)/; const str = "James Han"; console.log(`校验 ${reg.test(str) ? "正确" : "错误"}`);网址(URL) const reg = /^(((ht|f)tps?):\/\/)?([^!@#$%^&*?.\s-]([^!@#$%^&*?.\s]{0,63}[^!@#$%^&*?.\s])?\.)+[a-z]{2,6}\/?/; const str = "https://www.vvhan.com"; console.log(`校验 ${reg.test(str) ? "正确" : "错误"}`);必须带端口号的网址(或IP) const reg = /^((ht|f)tps?:\/\/)?[\w-]+(\.[\w-]+)+:\d{1,5}\/?$/; const str = "https://www.vvhan.com:80"; console.log(`校验 ${reg.test(str) ? "正确" : "错误"}`);银行卡号(10到30位, 覆盖对公/私账户) const reg = /^[1-9]\d{9,29}$/; const str = "6222026006705354000"; console.log(`校验 ${reg.test(str) ? "正确" : "错误"}`);帐号是否合法(字母开头,允许5-16字节,允许字母数字下划线组合) const reg = /^[a-zA-Z]\w{4,15}$/; const str = "han_666666"; console.log(`校验 ${reg.test(str) ? "正确" : "错误"}`);中文/汉字 const reg = /^(?:[\u3400-\u4DB5\u4E00-\u9FEA\uFA0E\uFA0F\uFA11\uFA13\uFA14\uFA1F\uFA21\uFA23\uFA24\uFA27-\uFA29]|[\uD840-\uD868\uD86A-\uD86C\uD86F-\uD872\uD874-\uD879][\uDC00-\uDFFF]|\uD869[\uDC00-\uDED6\uDF00-\uDFFF]|\uD86D[\uDC00-\uDF34\uDF40-\uDFFF]|\uD86E[\uDC00-\uDC1D\uDC20-\uDFFF]|\uD873[\uDC00-\uDEA1\uDEB0-\uDFFF]|\uD87A[\uDC00-\uDFE0])+$/; const str = "易航博客"; console.log(`校验 ${reg.test(str) ? "正确" : "错误"}`);密码强度校验,最少6位,包括至少1个大写字母,1个小写字母,1个数字,1个特殊字符 const reg = /^\S*(?=\S{6,})(?=\S*\d)(?=\S*[A-Z])(?=\S*[a-z])(?=\S*[!@#$%^&*? ])\S*$/; const str = "han@666vvx,"; console.log(`校验 ${reg.test(str) ? "正确" : "错误"}`);微信号(wx),6至20位,以字母开头,字母,数字,减号,下划线 const reg = /^[a-zA-Z][-_a-zA-Z0-9]{5,19}$/; const str = "kd_-666"; console.log(`校验 ${reg.test(str) ? "正确" : "错误"}`);邮政编码(中国) const reg = /^(0[1-7]|1[0-356]|2[0-7]|3[0-6]|4[0-7]|5[1-7]|6[1-7]|7[0-5]|8[013-6])\d{4}$/; const str = "734500"; console.log(`校验 ${reg.test(str) ? "正确" : "错误"}`);中文和数字 const reg = /^((?:[\u3400-\u4DB5\u4E00-\u9FEA\uFA0E\uFA0F\uFA11\uFA13\uFA14\uFA1F\uFA21\uFA23\uFA24\uFA27-\uFA29]|[\uD840-\uD868\uD86A-\uD86C\uD86F-\uD872\uD874-\uD879][\uDC00-\uDFFF]|\uD869[\uDC00-\uDED6\uDF00-\uDFFF]|\uD86D[\uDC00-\uDF34\uDF40-\uDFFF]|\uD86E[\uDC00-\uDC1D\uDC20-\uDFFF]|\uD873[\uDC00-\uDEA1\uDEB0-\uDFFF]|\uD87A[\uDC00-\uDFE0])|(\d))+$/; const str = "易航好6啊"; console.log(`校验 ${reg.test(str) ? "正确" : "错误"}`);匹配连续重复的字符 const reg = /(.)\1+/; const str = "112233"; console.log(`校验 ${reg.test(str) ? "正确" : "错误"}`);统一社会信用代码 const reg = /^[0-9A-HJ-NPQRTUWXY]{2}\d{6}[0-9A-HJ-NPQRTUWXY]{10}$/; const str = "91110108772551611J"; console.log(`校验 ${reg.test(str) ? "正确" : "错误"}`);子网掩码(不包含 0.0.0.0) const reg = /^(254|252|248|240|224|192|128)\.0\.0\.0|255\.(254|252|248|240|224|192|128|0)\.0\.0|255\.255\.(254|252|248|240|224|192|128|0)\.0|255\.255\.255\.(255|254|252|248|240|224|192|128|0)$/; const str = "255.255.255.0"; console.log(`校验 ${reg.test(str) ? "正确" : "错误"}`);车牌号(新能源) const reg = /^[京津沪渝冀豫云辽黑湘皖鲁新苏浙赣鄂桂甘晋蒙陕吉闽贵粤青藏川宁琼使领][A-HJ-NP-Z](?:((\d{5}[A-HJK])|([A-HJK][A-HJ-NP-Z0-9][0-9]{4}))|[A-HJ-NP-Z0-9]{4}[A-HJ-NP-Z0-9挂学警港澳])$/; const str = "京AD92035"; console.log(`校验 ${reg.test(str) ? "正确" : "错误"}`);车牌号(非新能源) const reg = /^[京津沪渝冀豫云辽黑湘皖鲁新苏浙赣鄂桂甘晋蒙陕吉闽贵粤青藏川宁琼使领][A-HJ-NP-Z][A-HJ-NP-Z0-9]{4}[A-HJ-NP-Z0-9挂学警港澳]$/; const str = "京A00599"; console.log(`校验 ${reg.test(str) ? "正确" : "错误"}`);车牌号(新能源+非新能源) const reg = /^[京津沪渝冀豫云辽黑湘皖鲁新苏浙赣鄂桂甘晋蒙陕吉闽贵粤青藏川宁琼使领][A-HJ-NP-Z][A-HJ-NP-Z0-9]{4,5}[A-HJ-NP-Z0-9挂学警港澳]$/; const str = "京A12345D"; console.log(`校验 ${reg.test(str) ? "正确" : "错误"}`);护照(包含香港、澳门) const reg = /(^[EeKkGgDdSsPpHh]\d{8}$)|(^(([Ee][a-fA-F])|([DdSsPp][Ee])|([Kk][Jj])|([Mm][Aa])|(1[45]))\d{7}$)/; const str = "s28233515"; console.log(`校验 ${reg.test(str) ? "正确" : "错误"}`);
技术教程
# Web前端
# 正则表达式
易航
3年前
0
142
1
2022-07-08
正则表达式详解
一、介绍 正则表达式是一种文本模式,它包括普通字符(例如,A和Z之间的字母)和特殊字符(称为“元字符”)。 正则表达式使用单个字符串来描述和匹配一系列符合特定语法规则的字符串。 正则表达式虽然繁琐,但是功能强大,学会之后的应用不仅会提高你的效率,还会给你带来绝对的成就感。 许多编程语言都支持使用正则表达式进行字符串操作,它的匹配模式在各种编程语言内都是大同小异。 PCRE正则表达式图片 PHP语言支持两种风格的正则表达式语法:POSIX 和 Perl。 这两个表达式是编译PHP时指定的默认样式,但是在PHP5.3之后,POSIX风格被抛弃了。 二、本人常用的正则匹配工具 菜鸟工具提供的正则表达式工具,链接:https://c.runoob.com/front-end/854 三、基本知识介绍 正则表达式是描述文本中包含的模式的一种方式。 在PHP中,匹配正则表达式更像是strstr()函数匹配而不是相等比较,因为它在一个字符串的某个位置,如果不指定,它可能在字符串的任何地方匹配另一个字符串。 例:字符串“shop”匹配正则表达式“shop”,也可以匹配h、ho等正则表达式。 除了精确匹配字符之外,特殊字符也可以用于指定表达式的元意义。 说了这么多基本理论本人也很烦 ::(喷) ,言归正传!我们直接进入主题 ↓ 四、基础字符介绍 {card-default label="分隔符:/"} 作用:每个表达式必须包含在一対分隔符中,字符串的开始和结束都必须要有匹配的分隔符 例:编写一个匹配 shop 的正则表达式 : /shop/ {/card-default} {card-default label="模式选择:|(选择分支的开始(读为或))"} 例: /com|edu|net/ 匹配 com 、edu 或 net 字符串 {/card-default} {card-default label="模式修饰符:i"} 作用:使用模式修饰符 将以不区分大小写的方式匹配字符串 例:不区分大小写的方式匹配 shop 的正则表达式 /shop/i {/card-default} {card-default label="方括号字符:[]"} 例如:/[a-z]at/ 表示限定第一个字符必须是a-z之间的字符。 {/card-default} {card-default label="脱字符号:^"} 作用:脱字符号 ^ 用于正则表达式的开始,表示子字符串必须出现在被搜索字符串的开始处;当脱字符号 ^ 在方括号里面时,表示否; 在下面两张表中会具体介绍例子 {/card-default} 五、在PCRE正则表达式中,用于方括号外面的特殊字符 字符意义例子\转义字符在正则表达式匹配字符 / 则使用 \ 来转义:/http:\/\//^在字符开始处匹配/^[a-z]$/ 匹配只包含 a-z 之间一个字符的字符串$在字符末尾处匹配/com$/ 匹配将以 com 为结束的字符串.匹配除换行符 \n 之外的字符/.at/ 可以匹配cat 、sat 、mat 等字符串,适用于操作系统的文件名匹配()子模式/(very)*large/ 可以匹配“large”、“very large”、“very very large”*重复出现0次或多次[[:alnum:]]* 表示没有或多个字母字符+重复出现1次或多次[[:alnum:]]+ 表示至少有一个字母字符?重复出现1次或0次[[:alnum:]]? 表示有零个或一个字母字符{}最小/最大 量记号{3} 表示重复三次;{2,4} 重复2-4次;{2, } 表示至少要重复两次六.在PCRE正则表达式中,用于方括号里面的特殊字符 字符意义例子\转义字符在正则表达式匹配字符 / 则使用 \ 来转义:/http:\/\//^非,进开始处使用/[^a-z]/ 匹配任何不在 a-z 之间的字符-用于指定符号的范围/[a-zA-Z]/ 这个范围集代表大写的任何字母七.用于PCRE风格正则表达式的字符类 类匹配[[:alnum:]]文字数字字符[[:alpha:]]字母字符[[:asci:]]ASCLL字符[[:space:]]空白字符[[:cntrl:]]控制符[[:print:]]所有可打印的字符[[:graph:]]除空格外所有可打印的字符[[:punct:]]标点字符[[:blank:]]制表符和空格[[:lower:]]小写字母[[:upper:]]大写字母[[:digit:]]小数[[:xdigit:]]十六进制小数[[:word:]]“word”字符(字母数字或下划线)八、PCRE正则表达式的特殊字符类型 字符类型含义\d十进制数字\D任意非十进制数字\h水平空白字符\H任意非水平空白字符\s空白字符\S任意非空白字符\v垂直空白字符\V任意非垂直空白字符\w单词字符(字母、数字、下划线)\W任意非单词字符九、回溯引用 回溯引用( backreference ,也叫反向引用),非PHP程序员一般会放弃学习和使用,我也快放弃了 :@(哭泣) {% note success no-icon %} 模式的回溯引用是通过一个反斜杠加一个数字(根据上下文不同,也可能多个数字) 它用来匹配多次出现在一个字符串中的相同子表达式,而不用指定要具体匹配的内容{% endnote %} 例: /1是表示第一个子模式回调引用; 图片 /2则是第二个子模式回调引用 图片 十、在邮箱验证中应用 验证邮箱正则表达式:/^[a-zA-Z0-9_\-.]+@[a-zA-Z0-9\-]+\.[a-zA-Z0-9\-]*[\.a-zA-Z0-9]{2,6}+$/ 子表达式 /^[a-zA-Z0-9_\-.]+ 表示“至少由一个或多个字母、数字、下划线、连字符、点号组成并且作为整个字符串开始的字符串”。请注意,当“.”用在一个字符类的开始或结束处时,它将失去其特殊通配符的意义,只能成为一个点号字符。 符号 @ 匹配字符“@”。 子表达式 [a-zA-Z0-9\-]+ 与由字母、数字字符和连字符组成的主机名相匹配。请注意,在这里,我们去除了连字符,因为它是方括号内的特殊字符。 字符组合 \. 匹配“.”字符。我们在字符类外部使用点号,因此必须对其转义,使其能够匹配一个点号字符。 子表达式 [a-zA-Z0-9\-] 匹配域名剩余部分,它包含字母、数字和连字符。 子表达式 *[\.a-zA-Z0-9]{2,6}+$/ 匹配域名剩余部分,它包含字母、数字和连字符。最后的子表达式最多只能存在2-6个字符,或者不存在 如图 图片
技术教程
# 正则表达式
易航
3年前
0
90
4