加入收藏 | 设为首页 | 会员中心 | 我要投稿 李大同 (https://www.lidatong.com.cn/)- 科技、建站、经验、云计算、5G、大数据,站长网!
当前位置: 首页 > 百科 > 正文

浅谈正则表达式

发布时间:2020-12-14 06:45:38 所属栏目:百科 来源:网络整理
导读:浅谈正则表达式 正则表达式是对字符串进行查找替换和提取等操作的工具。有两种写法: 直接量语法 /pattern/attribues RegExp对象语法 new RegExp(pattern,attributes); 举个例子,比如我们要在一段字符串中查找所以数字,如下: var str = "1 23 sda 34 adl3

浅谈正则表达式

正则表达式是对字符串进行查找替换和提取等操作的工具。有两种写法:

  • 直接量语法
/pattern/attribues
  • RegExp对象语法
new RegExp(pattern,attributes);

举个例子,比如我们要在一段字符串中查找所以数字,如下:

var str = "1 23 sda 34 adl34 7655 87 a 90 0";
        console.log(str.match(/d+/g))
        // ["1","23","34","7655","87","90","0"]

只需要这么简单的一段代码就能在控制台打印出我们需要的结果了。如果用一般的写法,我们可能需要遍历字符串,还要对字符串的内容进行判断,就要写一大段代码,而利用正则表达式,我们可以很轻松的达成我们的需要。

再举个例子,我们要对"35621237.61"这串数字添加千分位分隔符:

var a = "35621237.61";
        var reg=/(?=(d{3})+(.|$))/g;
        console.log(a.replace(reg,","))
        //35,621,237.61

就这样就搞定了!

不过正则表达式有个缺点,就是符号太多,有时候看上去一脸懵逼,为了了解正则表达式,我们现在来看看正则表达式的各种属性,以利用这个强大的工具。

参数

参数 pattern 是一个字符串,制订了正则表达式的模式和其他正则表达式

参数 attributes 是一个可选的字符串,包含属性"g"、"i"、"m",分别用于指定全局匹配、区分大小写的匹配和多行匹配。

修饰符

i 执行对大小写不敏感的匹配
g 全局匹配,即查找所有匹配
m 执行多行匹配

方括号

方括号用于查找某个范围内的字符

[abc]  查找方括号之间的任何字符
[^abc] 查找任何不在方括号之间的字符
[0-9]  查找任何从 0 至 9 的数字
[a-z]  查找任何从小写 a 到小写 z 的字符
[A-Z]  查找任何从大写 A 到大写 Z 的字符
[adgk] 查找给定集合内的任何字符

元字符

即特殊符号

.    查找单个字符,除了换行和行结束符
w    查找单词字符
W    查找非单词字符
d    查找数字
D    查找非数字字符
s    查找空白字符
S    查找非空白字符
b    匹配单词边
B    匹配非单词边界
    查找 NUL 字符
n    查找换行符
f    查找换页符
r    查找回车符
t    查找制表符
v    查找垂直制表符
xxx    查找以八进制数 xxx 规定的字符
xdd    查找以十六进制数 dd 规定的字符
uxxxx    查找以十六进制数 xxxx 规定的 Unicode 字符

量词

n+    匹配任何包含至少一个 n 的字符串
n*    匹配任何包含零个或多个 n 的字符串
n?    匹配任何包含零个或一个 n 的字符串
n{X}    匹配包含 X 个 n 的序列的字符串
n{X,Y}    匹配包含 X 至 Y 个 n 的序列的字符串
n{X,}    匹配包含至少 X 个 n 的序列的字符串
n$    匹配任何结尾为 n 的字符串
^n    匹配任何开头为 n 的字符串
?=n    匹配任何其后紧接指定字符串 n 的字符串
?!n    匹配任何其后没有紧接指定字符串 n 的字符串

支持正则表达式的String对象方法

search    检索与正则表达式相匹配的值
match    找到一个或多个正则表达式的匹配
replace    替换与正则表达式匹配的子串
split    把字符串分割为字符串数组
  • 注意,如果字符串内有特殊字符,如""、".",在查找这些符号的时候,要在符号前加""转码

小知识:在字符串内,要想打印反斜杠,那代码里要写两个反斜杠

END

(编辑:李大同)

【声明】本站内容均来自网络,其相关言论仅代表作者个人观点,不代表本站立场。若无意侵犯到您的权利,请及时与联系站长删除相关内容!

    推荐文章
      热点阅读