其他分享
首页 > 其他分享> > JS RegExp 正则

JS RegExp 正则

作者:互联网

正则表达式(regular expression)是一种表达文本模式(即字符串结构)的方法

1、属性参数(RegExp.prototype)
ignoreCase (忽略大小写,简写i )
global (全局匹配,简写g)
multiline (多行匹配,简写m)
/world$/.test('hello world\n') // false
/world$/m.test('hello world\n') // true
flags (返回已设置的属性参数,如:‘igm’)
2、实例方法
RegExp.prototype.test(/bb/g).test('bb')
如果携带了g参数,那下一次调用test都从上一次结束的位置开始向后检索匹配(不包括上一次匹配到的位置)
可以设置检索位置,返回值是Boolean
RegExp.prototype.exec (/bb/).exec('bb')
如果匹配成功,返回值是数组,否则为null,返回值数组中还包含input(整个字符串)index(匹配成功的开始位置)
['b', index: 0, input: 'bbbb', groups: undefined ]

3、字符串中的正则
match 返回数组,成员是匹配的字符串集合,参数为正则表达式
search 返回满足匹配条件的下标,否则返回-1,参数为正则表达式
replace ,第一个参数是被替代的值或正则,第二个参数是替代的值,($&匹配的子字符串,
$`匹配前面的文本,$'匹配后面的文本,$n匹配成功的第n组内容,n从1开始)
split

4、字面量和元字符
大部分字符在正则表达式中,就是字面的含义,比如/a/匹配a,/b/匹配b。如果在正则表达式之中,某个字符只表示它字面的含义(就像前面的a和b),那么它们就叫做“字面量字符”

点字符(.)
匹配除回车(\r)、换行(\n)、行分隔符(\u2028)、段分隔符(\u2029)
位置字符(^ $)
选择符(|) 表示或OR关系

5、转义符
正则表达式中,需要反斜杠转义的,一共有12个字符:^、.、[、$、(、)、|、*、+、?、{和\。需要特别注意的是,如果使用RegExp方法生成正则对象,转义需要使用两个斜杠,例如('1\+1').test('1+1')

6、特殊字符
\cX (表示Ctrl-[X],x表示A-Z之中任一个英文字母)
\n (匹配换行,通常正则表达式遇到换行符就会停止匹配)
\r (匹配回车)
\t (匹配tab制表符)

7、字符类
脱字符([]),存在于方括号中的第一个字符,表示匹配除了字符类之外的所有字符
连字符(-),存在于方括号中,[0-9a-zA-Z],但是[1-31]只表示1-3

8、预定义字符
\d 相当于0-9
\D 除0-9外的字符,相当于[^0-9]
\w 匹配任意的字母、数字、下划线,相当于[a-zA-Z0-9_]
\W 除任意的字母、数字、下划线,相当于[^a-zA-Z0-9_]
\s 匹配空格(包括换行符、制表符、空格符)
\S 匹配非空格字符
\b 匹配词的边界
\B 匹配非词边界

9、常见字符
? 代表0次或1次

. 代表匹配1次
10、贪婪和非贪婪模式
贪婪模式,使用?、 、 +
非贪婪模式:在贪婪模式加?,例如 ??、
?、+ ?

11、组匹配
捕获组:()代表一组,\n代表捕获到的组,n为自然正整数

/y(..)(.)\2\1/.test('yabccab') // true

非捕获组:(?:x)
// 正常匹配
var url = /(http|ftp)

标签:字符,google,匹配,http,JS,正则,test,RegExp,com
来源: https://www.cnblogs.com/lceihen/p/16532130.html