本文实例讲述了JS正则表达式常见用法。分享给大家供大家参考,具体如下:
前言:正则表达式(regular expression)反反复复学了多次,学了又忘,忘了又学,这次打算把基本的东西都整理出来,加强记忆,也方便下次查询。
学习正则表达式之前首先需要掌握记忆这些基本概念:
1.元字符:(.,\w,\W,\d,\D,\s,/S,^,$,)
字符
含义
.
匹配除了换行符以外的任意字符。
\s
代表任意空白符(换行符,制表符,空格)
\S
匹配任意非空字符串
\b
匹配单词边界,匹配单词的开头和结尾。
\B
匹配一个非单词边界
\d
匹配一个数字,等价于[0-9]
\D
匹配一个数字,等价于[^0-9]
\w
匹配一个单字字符(字母、数字或者下划线)等价于[A-Za-z0-9_],例如, /\w/ 匹配 "apple," 中的 'a',"$5.28,"中的 '5' 和 "3D." 中的 '3'。 \W匹配一个非单字字符。等价于[^A-Za-z0-9_],例如, /\W/ 或者 /[^A-Za-z0-9_]/ 匹配 "50%." 中的 '%'。
\W
匹配一个非单字字符。等价于[^A-Za-z0-9_],例如, /\W/ 或者 /[^A-Za-z0-9_]/ 匹配 "50%." 中的 '%'。
^
匹配字符串的开始用在[]括号里面表示排除,/^A/ 并不会匹配 "an A" 中的 'A',但是会匹配 "An E" 中的 'A'。
$
匹配字符串的结束。例如,/t$/ 并不会匹配 "eater" 中的 't',但是会匹配 "eat" 中的 't'。 QQ号必须为5位到12位数字时,可以使用:^\d{5,12}$
我们发现\W加大写字母都是表示相反的意思。
2.分组符([],(),{});
字符
含义
()
如果想要重复多个字符该怎么办"brisket"中得‘b',也都匹配“city”中的‘c'。/[a-z.]+/ 和/[\w.]+/都匹配“test.i.ng”中得所有字符。
{}
表示量词的范围的。
3.修饰符(i,g,m);
字符
含义
i
忽略大小写
g
执行全局匹配
m
执行多行匹配
4.量词(*,"jbborder">
字符
含义
*
匹配任意次,.*连在一起就意味着任意数量的不包含换行的字符。等价于{0,}
+
匹配前面一个表达式1次或者多次。等价于 {1,}。
"3.141")匹配‘141'但是不是‘3.141'
实例解析:
var reg = /\("font-size: medium">需求一:在一句话英文中匹配一个hi的单词。var str = 'Hi RegExp I love you so much Hi Hi hi'; var reg = new RegExp("\\bhi\\b","gi");//g是一个修饰符,表示全局匹配。\b是一个元字符,代表单词边界,匹配单词的开头和结尾。 //直接量语法: reg2 = /\bhi\b/gi; console.log(str.match(reg2));//['hi','hi','hi','hi'] //升级 //匹配hi后面不远处跟着一个lucy var strlc = /\bhi\b.*\blucy\b/; var luch = 'hi welcome to beijing lucy!!!'; console.log(luch.match(strlc));需求二:在一句话英文中匹配一个hi的单词。
var reg = /0\d\d\d-\d\d\d\d\d\d\d\d/;//\d代表一个数字,等价于[0-9],\D匹配一个非数字字符,等价于[^0-9] var tel = "0123-887523146"; console.log(tel.match(reg));//0123-88752314; //这个连续写多次的方法很笨哎,所以引进了变量。 regTel = /0\d{3}-\d{8}/; console.log(tel.match(regTel));//0123-88752314;需求三:写一个清除字符串前后空格的正则表达式。
String.prototype.trim = function(){return this.replace(/(^\s*)|(\s*$)/g, "");} var str2 = " hi space "//这里前后共有两个空格 console.log(str2.length);//14 console.log(str2.trim().length);//8 console.log(str2.trim());//hi space需求四:匹配一个邮箱。
var eReg = /\S*@\S*\.\S*/; console.log(eReg.test('873619879@qq.com'))//true参考文章:
https://www.jb51.net/books/513871.html
https://developer.mozilla.org/zh-CN/docs/Web/JavaScript/Guide/Regular_Expressions#
//www.jb51.net/article/72867.htm
https://www.jb51.net/article/107796.htmPS:这里再为大家提供2款非常方便的正则表达式工具供大家参考使用:
JavaScript正则表达式在线测试工具:
http://tools.jb51.net/regex/javascript正则表达式在线生成工具:
http://tools.jb51.net/regex/create_reg更多关于JavaScript相关内容感兴趣的读者可查看本站专题:《JavaScript正则表达式技巧大全》、《JavaScript替换操作技巧总结》、《JavaScript查找算法技巧总结》、《JavaScript数据结构与算法技巧总结》、《JavaScript遍历算法与技巧总结》、《JavaScript中json操作技巧总结》、《JavaScript错误与调试技巧总结》及《JavaScript数学运算用法总结》
希望本文所述对大家JavaScript程序设计有所帮助。
JS,正则表达式
RTX 5090要首发 性能要翻倍!三星展示GDDR7显存
三星在GTC上展示了专为下一代游戏GPU设计的GDDR7内存。
首次推出的GDDR7内存模块密度为16GB,每个模块容量为2GB。其速度预设为32 Gbps(PAM3),但也可以降至28 Gbps,以提高产量和初始阶段的整体性能和成本效益。
据三星表示,GDDR7内存的能效将提高20%,同时工作电压仅为1.1V,低于标准的1.2V。通过采用更新的封装材料和优化的电路设计,使得在高速运行时的发热量降低,GDDR7的热阻比GDDR6降低了70%。
更新动态
- 孙悦2024-时光音乐会[金蜂][WAV+CUE]
- 秦宇子.2020-#YUZI【海蝶】【FLAC分轨】
- 苏有朋.1994-这般发生【华纳】【WAV+CUE】
- 小虎队.1990-红蜻蜓【飞碟】【WAV+CUE】
- 雷婷《寂寞烟火HQⅡ》头版限量[低速原抓WAV+CUE][1G]
- 赵传1996《黑暗英雄》台湾首版[WAV+CUE][1G]
- 张敬轩2005《我的梦想我的路》几何娱乐[WAV+CUE][1G]
- 群星《人到四十男儿情(SRS+WIZOR)》[原抓WAV+CUE]
- 马久越《上善若水HQCDII》[低速原抓WAV+CUE]
- 龚玥《女儿情思》6N纯银SQCD【WAV+CUE】
- 张惠妹《你在看我吗》大碟15 金牌大风[WAV+CUE][1G]
- 群星《左耳·听见爱情》星文唱片[WAV+CUE][1G]
- 群星《抖音嗨疯-DISCO英文版》[WAV+CUE][1G]
- 群星.1990-情义无价(TP版)【中唱】【WAV+CUE】
- 马兆骏.1990-心情·七月【滚石】【WAV+CUE】