javascript 正则表达式

正则表达式

更新:
\s 空格
\S 非空格
\b 单词边界
正向前瞻(后面是aaa)
(?=aaa)匹配后面有aaa,但匹配结果不包含aaa
(?:aaa)匹配后面有aaa,匹配结果包含aaa
负向前瞻(后面不是aaa)
(?!aaa)匹配后面不是aaa的

( ) 分组

( a|b ) 候选 a和b都匹配

[ ] 和(或)

[a-zA-Z_0-9]

[^ ] 不包括

{ } 表示数量,出现次数

{ 3 } 出现3次

{ 3,5 } 出现3-5次的都算

{ 3, } 至少出现3次

? 0个或1个

  • 0个更多
  • 1个或更多

g 全局global

i 忽略大小写 ignoreCase

m 多行匹配 multiline

============

? * +

贪婪模式,先匹配所有字符串,从末尾不断去掉一个字符。知道匹配或没有字符。从后开始。

(?*+)?

惰性模式,只要是后面加的是?,表示从字符串第一个开始匹配。

(?*+) +

支配量词,只匹配整个字符串,没有就算了。

=============

^ 以...开头

$ 一...结尾

. 点表示一个字符

\ 转义

==============

\n 换行符

\r 回车符

\t 制表符

\f 换页符

\b 回退符

\v 垂直制表符

\0 空字符

================

\b 单词的边界

\B 非单词的边界

\d 数字

\D 非数字

\s 空白字符

\S 非空白字符

\w 单词字符(所有的字母,数字,下划线)

\W 非单词字符

基本手册:

http://www.w3school.com.cn/jsref/jsref_obj_regexp.asp

关于$系列

https://segmentfault.com/a/1190000002732946?utm_source=APP&utm_medium=iOS&utm_campaign=socialShare

javascript中创建一个正则表达式有两种方式:

1, var reg = /pattern/attributes ;

2, var reg = new RegExp('pattern', attributes);

当然了类似于创建对象和数组,应该还是比较推荐第一种的。

其中:

参数 pattern 是一个字符串,指定了正则表达式的模式或其他正则表达式。

参数 attributes 是一个可选的字符串,包含属性 "g"、"i" 和 "m",分别用于指定全局匹配、区分大小写的匹配和多行匹配。ECMAScript 标准化之前,不支持 m 属性。如果 pattern 是正则表达式,而不是字符串,则必须省略该参数。

g i m

g:全局匹配

i:不区分大小写进行匹配

m:修改^和$在正则表达式中的作用,让它们分别表示行首和行尾。

=======================

/^p{n}$/

{n}里面n表示匹配的这个字符的连续的个数。/a{3}/则表示匹配 'aaa' 3个连续的a字符。

/a{m,n}/ 表示m或者n个连续的a

/a{m, }/ 表示m以上个连续的a

^表示只匹配字符串的开头,

$表示只匹配字符串的结尾。

*,+,?

*表示0次或者多次,等同于{0,},即

c* 和 c{0,} 是一个意思。

+表示一次或者多次,等同于{1,},即

c+ 和 c{1,} 是一个意思。

最后,?表示0次或者1次,等同于{0,1},即

c? 和 c{0,1} 是一个意思。

如果我们希望正则尽量少地匹配字符,那么就可以在表示数字的符号后面加上一个?。

如 reg = /c{1,}?/; str='ccccc'; execReg(reg,str);

或 |

/b|c/ 匹配b或者c

[abc]

表示 匹配a或者b或者c中的任意一个字符。

(b|c)

小括号就是括号内看成一个整体 ,而上面的中括号就是匹配括号内的其中一个。

[^abc]就表示不能是a,b或者c中的任何一个。

=======================

方法:

reg.test(str);//返回布尔值 true false

reg.exec(str);//返回数组

str.match(reg);//返回数组

str. replace (reg,’new str’);

str.search(reg); // search返回正则表达式第一次匹配的位置。

str.split(reg,’seprator’); split返回分割后的数组

======

使用[^这里添排除的内容] 例如 [^\d] 排除数字

使用[^\s] 排除空格

使用[^a] 排除字符a

小括号就是括号内看成一个整体 ,中括号就是匹配括号内的其中一个,大括号就是匹配几次

匹配非开头空格的内容

var a = ' abc d '

a.replace(/^^\s/g,'')

"abc d "

你可能感兴趣的:(javascript 正则表达式)