ICode9

精准搜索请尝试: 精确搜索
首页 > 其他分享> 文章详细

JS RegExp 正则

2022-07-29 14:32:23  阅读:173  来源: 互联网

标签:字符 google 匹配 http JS 正则 test RegExp com


正则表达式(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次

  •          代表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

本站声明: 1. iCode9 技术分享网(下文简称本站)提供的所有内容,仅供技术学习、探讨和分享;
2. 关于本站的所有留言、评论、转载及引用,纯属内容发起人的个人观点,与本站观点和立场无关;
3. 关于本站的所有言论和文字,纯属内容发起人的个人观点,与本站观点和立场无关;
4. 本站文章均是网友提供,不完全保证技术分享内容的完整性、准确性、时效性、风险性和版权归属;如您发现该文章侵犯了您的权益,可联系我们第一时间进行删除;
5. 本站为非盈利性的个人网站,所有内容不会用来进行牟利,也不会利用任何形式的广告来间接获益,纯粹是为了广大技术爱好者提供技术内容和技术思想的分享性交流网站。

专注分享技术,共同学习,共同进步。侵权联系[81616952@qq.com]

Copyright (C)ICode9.com, All Rights Reserved.

ICode9版权所有