什么是正则表达式?
正则表达式是一个字符序列形成的搜索模式,是字符串运算的逻辑公式。
当您在文本中搜索数据时,可以使用搜索模式来描述您要查询的内容;
正则表达式可以是简单的字符,也可以是更复杂的模式;
正则表达式可用于所有文本搜索和文本替换操作;
正则表达式的概念最早是由Unix工具软件(如sed和grep)普及的。
主要的应用对象是文本。
有什么特点?
非常灵活,逻辑和功能;
字符串的复杂控制可以用非常简单的方式快速实现;
对于刚接触的人来说,比较晦涩。
语法
/正则表达式体/修饰符(可选)
使用字符串方法
在JaScript中,正则表达式通常用于两种字符串方法:search()和replace()。
search()方法用于检索字符串中指定的子字符串,或者与正则表达式匹配的子字符串,并返回子字符串的起始位置。
replace()方法用于将字符串中的某些字符替换为其他字符,或者替换与正则表达式匹配的子字符串。
符号
正则表达式由一些普通字符和一些元字符组成。
普通字符包括大小写字母和数字,而元字符有特殊的含义。
元字符:
这只是一部分内容。有兴趣的同学可以去杜娘,但由于篇幅原因,无法一一呈现。
修饰语
在全局搜索中,修饰符可以不区分大小写:
修饰符描述i执行对大小写不敏感的匹配。g执行全局匹配(查找所有匹配而非在找到第一个匹配后停止)。m执行多行匹配。
量词:
n+匹配任何包含至少一个 n 的字符串。n*匹配任何包含零个或多个 n 的字符串。n?匹配任何包含零个或一个 n 的字符串。运算符优先级
正则表达式从左到右求值,并遵循优先级顺序,这与算术表达式非常相似。
优先级相同的操作从左到右执行,优先级不同的操作先高后低。
运算符或表达式说明\转义符()、(?:)、(?=)、[]圆括号或方括号*、+、?、{n}、{n,}、{n,m}限定符^、$、\b、\B位置和顺序|选择符,“或”运算
上表显示了各种正则表达式操作符从高到低的优先级顺序。
匹配规则
[a-zA-Z] //匹配所有字母[a-Z][0-9]$//匹配由一个小写字母和一个数字组成的字符串,以表示字符串的开头,但它有另一种含义:
当“是”用在一组方括号中时,它表示“不是”或“排除”,通常用于排除一个字符:
[0-9][0-9]$//第一个字符不能是数字[a-z]//除小写字母以外的所有字符都必须重复:
字符簇描述^[a-zA-Z_]$所有的字母和下划线^[[:alpha:]]{3}$所有的3个字母的单词^a$字母a^a{4}$aaaa^a{2,4}$aa,aaa或aaaa^a{1,3}$a,aa或aaa^a{2,}$包含多于两个a的字符串^a{2,}如:aardvark和aaab,但apple不行a{2,}如:baad和aaa,但Nantucket不行\t{2}两个制表符.{2}所有的两个字符
在字符或字符簇后使用花括号({})来确定前面内容的重复次数。
数字{x}表示前一个字符或字符组只出现x次;
带逗号的数字{x,}表示前面的内容出现x次以上;
逗号分隔的数字{x,y}表示前面的内容至少出现x次,但不超过y次。
[a-za-z0-9 _] {1,} $//所有包含多个字母、数字或下划线的字符串[1-9] [0-9] {0,} $//所有正整数\-{0,1} [0-9] {1,[0-9]+\。?[0-9]+$ //所有浮点数都使用RegExp对象并使用test()
test()方法是一个正则表达式方法。
test()方法用于检测字符串是否与模式匹配。如果字符串包含匹配文本,则返回true,否则返回false。
使用exec()
exec()方法是一种正则表达式方法。
exec()方法用于检索字符串中正则表达式的匹配项。
这个函数返回一个包含匹配结果的数组。如果没有找到匹配,返回值为null。
JS正则化在表单验证中还是很有用的,以后我会写一篇关于正则化的表单验证的文章,敬请期待!
另外:当正则表达式和字符串函数都可以解决问题时,必须使用字符串函数,这样不容易出错。
最重要的是字符串函数比正则表达式好很多。
免责声明:本站所有文章内容,图片,视频等均是来源于用户投稿和互联网及文摘转载整编而成,不代表本站观点,不承担相关法律责任。其著作权各归其原作者或其出版社所有。如发现本站有涉嫌抄袭侵权/违法违规的内容,侵犯到您的权益,请在线联系站长,一经查实,本站将立刻删除。