正则表达式:

 

对于正则表达式的理解每人都会有所不同,我刚开始接触正则的时候是很蒙的,这都是些什么啊,就这样过了一段事件我渐渐的了解了正则了,也就明白的正则的优势了,正则对于表单的验证起了很大的作用,当然不只是表单的验证,还有许多方面正则也是占有许多优势的。

ECMAscript 通过 RegExp 类型来支持正则表达式。

正则表达式的创建

let expression = /pattern/flags;

flags: 为正则表达式的匹配模式,分别为i gm

其中g表示全局模式,i表示不区分大小写,m表示多行模式

以匹配模式google为例

let pattern =/google/;

匹配模式可以有多个,但是不能出现多次,RegExp对象的主要方法有两个,它们是test()exec()

test() 方法返回的是一个布尔值,匹配成功返回true,否则返回false

exec() 是专门为捕获而设计的方法,接受参数是一个字符串,返回的第一个匹配成功的数组,虽然返回的是数组,但是它还包含其他两个额外的属性,分别为indexinput

一般在正则表达式中还用到的方法还有match()search()replace(),他们是字符串实例的属性,但是也可以在正则中使用他们。

match()接受一个参数,即要匹配的模式,返回的一个数组, 与exec()类似

replace()接受两个参数,第一个是要匹配的模式,第二个为要替换的数组







正则中元字符在其中起了很大的作用,由于他们正则才显得如此奇妙无比

特殊字符:

$

匹配输入字符串的结尾位置。如果设置了 RegExp 对象的 Multiline 属性,则 $ 也匹配 '\n' '\r'。要匹配 $ 字符本身,请使用 \$

( )

标记一个子表达式的开始和结束位置。子表达式可以获取供以后使用。要匹配这些字符,请使用 \( \)

*

匹配前面的子表达式零次或多次。要匹配 * 字符,请使用 \*

+

匹配前面的子表达式一次或多次。要匹配 + 字符,请使用 \+

.

匹配除换行符 \n 之外的任何单字符。要匹配 . ,请使用 \.

[

标记一个中括号表达式的开始。要匹配 [,请使用 \[

?

匹配前面的子表达式零次或一次,或指明一个非贪婪限定符。要匹配 ? 字符,请使用 \?

\

将下一个字符标记为或特殊字符、或原义字符、或向后引用、或八进制转义符。例如, 'n' 匹配字符 'n''\n' 匹配换行符。序列 '\\' 匹配 "\",而 '\(' 则匹配 "("

^

匹配输入字符串的开始位置,除非在方括号表达式中使用,此时它表示不接受该字符集合。要匹配 ^ 字符本身,请使用 \^

{

标记限定符表达式的开始。要匹配 {,请使用 \{

|

指明两项之间的一个选择。要匹配 |,请使用 \|

限定符

字符

描述

*

匹配前面的子表达式零次或多次。例如,zo* 能匹配 "z" 以及 "zoo"* 等价于{0,}

+

匹配前面的子表达式一次或多次。例如,'zo+' 能匹配 "zo" 以及 "zoo",但不能匹配 "z"+ 等价于 {1,}

?

匹配前面的子表达式零次或一次。例如,"do(es)?" 可以匹配 "do" "does" 中的 "does" "doxy" 中的 "do" ? 等价于 {0,1}

{n}

n 是一个非负整数。匹配确定的 n 次。例如,'o{2}' 不能匹配 "Bob" 中的 'o',但是能匹配 "food" 中的两个 o

{n,}

n 是一个非负整数。至少匹配n 次。例如,'o{2,}' 不能匹配 "Bob" 中的 'o',但能匹配 "foooood" 中的所有 o'o{1,}' 等价于 'o+''o{0,}' 则等价于 'o*'

{n,m}

m n 均为非负整数,其中n <= m。最少匹配 n 次且最多匹配 m 次。例如,"o{1,3}" 将匹配 "fooooood" 中的前三个 o'o{0,1}' 等价于 'o?'。请注意在逗号和两个数之间不能有空格。



定位符

定位符使您能够将正则表达式固定到行首或行尾。它们还使您能够创建这样的正则表达式,这些正则表达式出现在一个单词内、在一个单词的开头或者一个单词的结尾。

定位符用来描述字符串或单词的边界,^ 和 $ 分别指字符串的开始与结束,\b 描述单词的前或后边界,\B 表示非单词边界。



非打印字符



字符

描述

\cx

匹配由x指明的控制字符。例如, \cM 匹配一个 Control-M 或回车符。x 的值必须为 A-Z a-z 之一。否则,将 c 视为一个原义的 'c' 字符。

\f

匹配一个换页符。等价于 \x0c \cL

\n

匹配一个换行符。等价于 \x0a \cJ

\r

匹配一个回车符。等价于 \x0d \cM

\s

匹配任何空白字符,包括空格、制表符、换页符等等。等价于 [ \f\n\r\t\v]

\S

匹配任何非空白字符。等价于 [^ \f\n\r\t\v]

\t

匹配一个制表符。等价于 \x09 \cI

\v

匹配一个垂直制表符。等价于 \x0b \cK




猜你喜欢

转载自www.cnblogs.com/evenGO/p/9279947.html