本文实例讲述了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程序设计有所帮助。
免责声明:本站资源来自互联网收集,仅供用于学习和交流,请遵循相关法律法规,本站一切资源不代表本站立场,如有侵权、后门、不妥请联系本站删除!
更新日志
- 凤飞飞《我们的主题曲》飞跃制作[正版原抓WAV+CUE]
- 刘嘉亮《亮情歌2》[WAV+CUE][1G]
- 红馆40·谭咏麟《歌者恋歌浓情30年演唱会》3CD[低速原抓WAV+CUE][1.8G]
- 刘纬武《睡眠宝宝竖琴童谣 吉卜力工作室 白噪音安抚》[320K/MP3][193.25MB]
- 【轻音乐】曼托凡尼乐团《精选辑》2CD.1998[FLAC+CUE整轨]
- 邝美云《心中有爱》1989年香港DMIJP版1MTO东芝首版[WAV+CUE]
- 群星《情叹-发烧女声DSD》天籁女声发烧碟[WAV+CUE]
- 刘纬武《睡眠宝宝竖琴童谣 吉卜力工作室 白噪音安抚》[FLAC/分轨][748.03MB]
- 理想混蛋《Origin Sessions》[320K/MP3][37.47MB]
- 公馆青少年《我其实一点都不酷》[320K/MP3][78.78MB]
- 群星《情叹-发烧男声DSD》最值得珍藏的完美男声[WAV+CUE]
- 群星《国韵飘香·贵妃醉酒HQCD黑胶王》2CD[WAV]
- 卫兰《DAUGHTER》【低速原抓WAV+CUE】
- 公馆青少年《我其实一点都不酷》[FLAC/分轨][398.22MB]
- ZWEI《迟暮的花 (Explicit)》[320K/MP3][57.16MB]