大家好,欢迎来到IT知识分享网。
关注我,从零学习JavaScript系列编程知识,带大家一起用编程技能赚钱。
抛砖引玉,本文概述了正则表达式的语法规则,介绍了正则表达式在JavaScript中的应用方法,引用了正则表达式的学习导图,给出了正则表达式的在线可视化。
正则表达式是文本利器,在之后的高级篇中会以专题形式对正则表达式进行更详细的介绍。
一、简介
概念:正则表达式(RE, Regular Expression)是由字符序列(普通字符和元字符)和修饰符组成的搜索模式,可以匹配一系列符合某个句法规则的字符串,用于文本搜索和文本替换。
// 正则表达式语法 /[正则主体]/[修饰符] // 修饰符可选 let pattern = new RegExp('typescript', 'i') // 方法一 let pattern = /typescript/i // 方法二 pattern 是正则表达式对象(RegExp的实例) /typescript/i 是一个正则表达式 typescript 正则主体,用于检索 i 修饰符,用于指定大小写不敏感
正则主体:普通字符和元字符
普通字符:包括没有显式指定为元字符的所有可打印和不可打印字符。包括所有大写字母、所有小写字母、所有数字、所有标点符号和一些其他符号。
元字符:非打印字符、特殊字符、限定字符
修饰符
// i 指定大小写不敏感匹配 // g 指定全局匹配 // m 指定多行匹配
二、字符串
// search() let pattern = /typescript/i let str = 'Hello, TypeScript.' let index = str.search(pattern) console.log(index) // 7
// replace() let pattern = /typescript/i let str = 'Hello, TypeScript' let res = str.replace(pattern, 'world.') console.log(res) // Hello, world.
三、RegExp
// test() 判断是否存在 let str = 'You are the best, I love you.' let re = new RegExp('ou', 'ig') // 全局大小写不敏感匹配ou let res = re.test(str) console.log(res) // true
// exec() let res = Re.exec(str) console.log(res)
// compile() 改变正则表达式 re.compile('uo') let res = re.test(str) console.log(res) // false
四、实例
匹配车牌号(非新能源)
// 正则表达式 /^[京津沪渝冀豫云辽黑湘皖鲁新苏浙赣鄂桂甘晋蒙陕吉闽贵粤青藏川宁琼使领][A-HJ-NP-Z][A-HJ-NP-Z0-9]{4}[A-HJ-NP-Z0-9挂学警港澳]$/g
// 说明 ^ // 以什么开头 $ // 以什么结尾 [] // 可选项集合 {n} // 匹配n次 ^[京津沪渝冀豫云辽黑湘皖鲁新苏浙赣鄂桂甘晋蒙陕吉闽贵粤青藏川宁琼使领] // 以 [京津沪渝冀豫云辽黑湘皖鲁新苏浙赣鄂桂甘晋蒙陕吉闽贵粤青藏川宁琼使领] 中任一汉字开头 [A-HJ-NP-Z] // 再匹配 [A-HJ-NP-Z] 1次,车牌里没有I 和O并且不能以数字开头 [A-HJ-NP-Z0-9]{4} // 再匹配 [A-HJ-NP-Z0-9] 4次 [A-HJ-NP-Z0-9挂学警港澳]$ // 以[A-HJ-NP-Z0-9挂学警港澳]中任一字符结尾
五、其它
正则表达式学习导图
正则表达式在线可视
“测试是用来表明bug的存在而不是不存在” —— Edsger Dijkstra
免责声明:本站所有文章内容,图片,视频等均是来源于用户投稿和互联网及文摘转载整编而成,不代表本站观点,不承担相关法律责任。其著作权各归其原作者或其出版社所有。如发现本站有涉嫌抄袭侵权/违法违规的内容,侵犯到您的权益,请在线联系站长,一经查实,本站将立刻删除。 本文来自网络,若有侵权,请联系删除,如若转载,请注明出处:https://yundeesoft.com/80951.html