用文字记录生活,留下美好瞬间
原创

JavaScript中的正则

共 2,481 字,需阅读 6 分钟
2018/07/13 上午
720 次阅读

#JavaScript中的正则表达式

正则表达式是一种广泛使用的模式匹配工具,它可以用来处理文本、数据和字符串。在JavaScript中,正则表达式也是一种非常有用的工具,能够帮助开发者处理各种数据格式,并且提高代码的效率。在这篇文章中,我们将会学习到JavaScript中的正则表达式相关知识,包括语法、匹配规则、元字符、修饰符和常用函数。

#正则表达式语法

正则表达式是由普通字符(如abc)、元字符和特殊字符组成的字符序列。其中,元字符和特殊字符是具有特殊含义的字符,可以用来匹配和定位目标字符串。

#元字符

在JavaScript中,一些常见的元字符包括:

元字符 描述
. 任意单个字符,除了换行符(\n)
^ 匹配字符串的开始
$ 匹配字符串的结尾
* 匹配前面的字符0次或多次
+ 匹配前面的字符1次或多次
? 匹配前面的字符0次或1次
{} 定义重复次数
[] 字符集,匹配包含在方括号内的任何一个字符
() 分组,可以将多个元素合并为一个单元

#特殊字符

在正则表达式中,一些常见的特殊字符包括:

特殊字符 描述
\s 空格和制表符
\S 非空格和非制表符
\d 数字
\D 非数字
\w 字母或数字
\W 非字母和非数字

#修饰符

在JavaScript中,修饰符是用来扩展正则表达式的功能的。以下是一些常见的修饰符:

修饰符 描述
i 匹配时忽略大小写
g 全局匹配,找到所有匹配项
m 多行匹配

#正则表达式实例

现在,我们将通过几个实际的例子来演示JavaScript中正则表达式的应用。

#匹配邮箱地址

下面的正则表达式可以用来匹配电子邮件地址:

          
  • 1
/^[\w-]+(\.[\w-]+)*@([\w-]+\.)+[a-zA-Z]{2,7}$/

其中:

  • /^ 和 $/ 表示匹配整个字符串
  • [\w-]+表示匹配字母、数字、下划线或破折号
  • (.[\w-]+)* 表示匹配一个或多个点和之后的字符
  • @ 表示匹配@ - ([\w-]+.)+表示匹配一个或多个字母、数字、下划线、破折号和点
  • [a-zA-Z]{2,7}表示匹配长度为2到7的字母 通过以上正则表达式,可以将有效邮箱地址进行匹配。

#匹配手机号码

下面的正则表达式可以用来匹配中国大陆地区的11位手机号码:

          
  • 1
/^1[3|4|5|6|7|8|9][0-9]\d{8}$/

其中:

  • /^ 和 $/ 表示匹配整个字符串
  • 1 表示匹配以1开头
  • [3|4|5|6|7|8|9] 表示第二个数字必须是3、4、5、6、7、8或9之一
  • [0-9] 表示后续还要有数字
  • \d{8}表示共计8个数字 通过以上正则表达式,可以将有效手机号码进行匹配。

#匹配身份证号码

下面的正则表达式可以用来匹配中国大陆地区的18位身份证号码:

          
  • 1
/^\d{17}[0-9Xx]$/

其中:

  • /^ 和 $/ 表示匹配整个字符串
  • \d{17} 表示前17位必须为数字
  • [0-9Xx] 表示第18位可以是数字或大写字母X 通过以上正则表达式,可以将有效身份证号码进行匹配。

#正则表达式的常用函数

在JavaScript中,有很多内置的正则表达式函数能够帮助我们更快速地使用正则表达式。以下是一些常见的正则表达式函数:

#test()

test()函数可以用来检测一个字符串是否符合某个正则表达式的规则。如果符合规则,则返回true;否则返回false。

          
  • 1
  • 2
  • 3
  • 4
let str = "Hello world!"; let pattern = /world/; let result = pattern.test(str); console.log(result); // true

#exec()

exec()函数可以用来查找字符串中与正则表达式匹配的下一项。

          
  • 1
  • 2
  • 3
  • 4
let str = "The sun is shining."; let pattern = /sun/; let result = pattern.exec(str); console.log(result); // ["sun", index: 4, input: "The sun is shining.", groups: undefined]

#replace()

replace()函数可以用来将一个字符串中与正则表达式匹配的部分替换成指定的内容。

          
  • 1
  • 2
  • 3
  • 4
let str = "Visit xDevDocs today"; let pattern = /xDevDocs/i; let result = str.replace(pattern, "Google"); console.log(result); // "Visit Google today"
自由转载 - 署名 - 非商业性使用
https://zhangwurui.cn/article/15
0/0条看法
访客身份
在下有一拙见,不知...
期待你的捷足先登