加入收藏 | 设为首页 | 会员中心 | 我要投稿 李大同 (https://www.lidatong.com.cn/)- 科技、建站、经验、云计算、5G、大数据,站长网!
当前位置: 首页 > 百科 > 正文

关于正则表达式RegExp

发布时间:2020-12-14 05:35:16 所属栏目:百科 来源:网络整理
导读:常用元字符串 ? 元字符 说明 d 匹配? ?数字 D 匹配? ?非数字 w 匹配? ?数字,字母,下划线 W 匹配? ?任意不是字母,数字,下划线 s 匹配? ?空白符 S 匹配? ?任意不是空白符的字符 . 匹配除换行符以外的 任意字符 ^ 匹配? ? 以谁开头 $ 匹配? ? 以谁结

常用元字符串

?

元字符 说明
d 匹配? ?数字
D 匹配? ?非数字
w 匹配? ?数字,字母,下划线
W 匹配? ?任意不是字母,数字,下划线
s 匹配? ?空白符
S 匹配? ?任意不是空白符的字符
. 匹配除换行符以外的任意字符
^ 匹配? ? 以谁开头
$ 匹配? ? 以谁结尾  
?
/r/n? 换行符
?
var?reg?=?/d/????//?表示只要字符串中有数字,就符合要求
var?reg?=?/D/????//?表示只要字符串中有非数字,就符合要求

var?reg?=?/w/????//?表示只要字符串中有?数字/字母/下划线?就符合要求
var?reg?=?/W/????//?表示只要字符串中有?非数字/非字母/非下划线?就符合要求
?
var?reg?=?/^a/????//表示?只要字符串以a开头就符合条件
var?reg?=?/a$/????//表示?只要字符串以a结尾就符合条件
var?reg?=?/^abc$/? ? ?// 要求字符串中只能有 abc
var?reg?=?/^d$/? ? ? ? //表示?只能有一个数字
var?reg?=?/^a|b$/??????//表示??以a开头或者以b结尾
var?reg?=?/^d{11}$/???//表示?字符串中只能出现11次数字
?
var?reg?=?/^d{3,}$/? ? //表示?字符串中只能出现3次或3次以上的数字
var?reg?=?/d{3,}/? ? ? ?//表示?字符串中只要包含3个或者3个以上的数字就符合要求???比如?‘?ab123?’
var?reg?=?/^d{3,5}$/??//表示??字符串中只能出现3~5次的数字
?
var?reg?=?/^d*$/??????//表示??字符串中只能出现0~多个数字(要么什么都不写,要么只能是数字)
var?reg?=?/^d+$/??????//表示??字符串中只能出现1~多个数字(字符串中至少要有一个数字)
var?reg?=?/^d?$/??????//表示??字符串中?要么什么都没有,或者??只能出现一个数字
?
var?reg?=?/^gr[ae]y$/???或者??var?reg?=?var?reg?=?/^gr(a|e)y$/????//表示?匹配?gray或者grey
?
var?reg?=?/^[0-9]$/????//匹配从0-9的任意一个数字
var?reg?=?/^[0-9a-z]$/????//匹配从0-9的任意一个数字?或者?a-z的任意一个字母
?

创建正则的方法 

?  var?reg?=?new?RegExp()
?  var?reg?=?/字符/
?
?
test()方法
正则对象.test(字符串)??如果字符串符合正则公式,就返回true,否则返回false

?

限定符

限定符 说明
* 重复零次或更多次
+ 重复一次或更多次
? 重复零次或一次
{n} 代表前面的字符可以出现n次
{n,} 出现n次或更多次
{n,m} 出现n到m次

?

?

  • [] 字符串用中括号括起来,表示匹配其中的任意一个字符,相当于或的意思([]占一个字符的位置)
  • [^] 匹配除中括号以内的内容(占一个位置,不能出现[]中的任意一个字符)
  • 转义符 (把特殊字符转义为普通字符 如 .)
  • | 或者,选择两者中的一个。注意|将左右两边分为两部分,而不管左右两边有多长多乱(会把正则分为两部分)
  • () 从两个直接量中选择一个,分组
  • eg:gr(a|e)y匹配gray和grey
  • [u4e00-u9fa5] 匹配汉字

?

?

案例

<script> // 验证手机号: /^d{11}$/ // 验证邮编: /^d{6}$/ // 匹配 138 139 186 189 170 152 135 188开头的手机号 var reg = /^1[3578][896025]d{8}$/ // 邮箱 [email?protected]/cn var reg = /^[email?protected]w+.(com|cn)$/ </script>

?

?

?

?

标志 说明
i 忽略大小写
g 全局匹配
gi 全局匹配+忽略大小写

?

?

?

?

//01匹配:正则对象.test(字符串) 输出true和false //02提取:字符串.match(正则对象); // 提取字符串中的数字部分 var str = "张三:1000,李四:5000,王五:8000。"; var reg = /d+/g //g console.log(str.match(reg)) // ["1000","5000","8000"] //03替换:字符串.replace(正则/被替换的字符,替换的字符) // 把字符中的,,替换为| var str = ‘abc,efg,123,abc,123,a‘ var reg = /,|,/g console.log( str.replace(reg,‘|‘) ) </script>

?

?

// 2. 分组 // 数字3位.数字3位.数字3位.数字3位.数字3位 var reg = /^d{3}.d{3}.d{3}.d{3}.d{3}$/; var reg = /^d{3}(.d{3}){4}$/ console.log(reg.test(‘123.123.123.123.123‘)); var dateStr = ‘2016-1-5‘; // 正则表达式中的()作为分组来使用,获取分组匹配到的结果用RegExp.$1 $2 $3....来获取 var reg = /(d{4})-(d{1,2})-(d{1,2})/; if (reg.test(dateStr)) { console.log(RegExp.$1); // 2016 console.log(RegExp.$2); // 1 console.log(RegExp.$3); // 5 }

(编辑:李大同)

【声明】本站内容均来自网络,其相关言论仅代表作者个人观点,不代表本站立场。若无意侵犯到您的权利,请及时与联系站长删除相关内容!

    推荐文章
      热点阅读