js-正则

作者: xueyueshuai | 来源:发表于2023-07-09 18:44 被阅读0次

正则对象 及其方法

// 两者等价
var re = new RegExp("\\w+");
var re = /\w+/;

// test() 方法用于检测一个字符串是否匹配某个模式,如果字符串中含有匹配的文本,则返回 true,否则返回 false。
/e/.test("The best things in life are free!");

// exec() 方法用于检索字符串中的正则表达式的匹配。
该函数返回一个数组,其中存放匹配的结果。如果未找到匹配,则返回值为 null。
/a/.exec('abcd')

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

方法 描述
search 检索与正则表达式相匹配的值。'abc'.search(/a/)
match 找到一个或多个正则表达式的匹配。'abccd'.match(/c/g)
replace 替换与正则表达式匹配的子串。'abca'.replace(/a/,'---'), 'abca'.replace(/a/g,'---')
split 把字符串分割为字符串数组。'a,b,c#d'.split(/[,#]/)

修饰符

修饰符用于执行区分大小写和全局匹配:

修饰符 描述
i 执行对大小写不敏感的匹配。
g 执行全局匹配(查找所有匹配而非在找到第一个匹配后停止)。
m 执行多行匹配。

元字符

元字符(Metacharacter)是拥有特殊含义的字符:

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

方括号

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

表达式 描述
[abc] 查找方括号之间的任何字符。
[^abc] 查找任何不在方括号之间的字符。
[0-9] 查找任何从 0 至 9 的数字。
[a-z] 查找任何从小写 a 到小写 z 的字符。
[A-Z] 查找任何从大写 A 到大写 Z 的字符。
[A-z] 查找任何从大写 A 到小写 z 的字符。
[adgk] 查找给定集合内的任何字符。
[^adgk] 查找给定集合外的任何字符。
(red|blue|green) 查找任何指定的选项。

量词

量词 描述
n+ 匹配任何包含至少一个 n 的字符串。例如,/a+/ 匹配 "candy" 中的 "a","caaaaaaandy" 中所有的 "a"。
n* 匹配任何包含零个或多个 n 的字符串。例如,/bo*/ 匹配 "A ghost booooed" 中"boooo","A bird warbled" 中的 "b",但是不匹配 "A goat grunted"。
n? 匹配任何包含零个或一个 n 的字符串。例如,/e?le?/ 匹配 "angel" 中的 "el","angle" 中的 "le"。
n{X}] 匹配包含 X 个 n 的序列的字符串。例如,/a{2}/ 不匹配 "candy," 中的 "a",但是匹配 "caandy," 中的两个 "a",且匹配 "caaandy." 中的前两个 "a"。
n{X,} X 是一个正整数。前面的模式 n 连续出现至少 X 次时匹配。例如,/a{2,}/ 不匹配 "candy" 中的 "a",但是匹配 "caandy" 和 "caaaaaaandy." 中所有的 "a"。
n{X,Y} X 和 Y 为正整数。前面的模式 n 连续出现至少 X 次,至多 Y 次时匹配。例如,/a{1,3}/ 不匹配 "cndy",匹配 "candy," 中的 "a","caandy," 中的两个 "a",匹配 "caaaaaaandy" 中的前面三个 "a"。注意,当匹配 "caaaaaaandy" 时,即使原始字符串拥有更多的 "a",匹配项也是 "aaa"。
^n 匹配任何开头为 n 的字符串。
n$ 匹配任何结尾为 n 的字符串。
?=n 匹配任何其后紧接指定字符串 n 的字符串。
?!n 匹配任何其后没有紧接指定字符串 n 的字符串。

例子

  var patt=/(http(.+)png)/g;
  let arr = str.match(patt)
  console.log(arr)


let str = '18233382571'
let res = /^(\+86|0086)?1\d{10}$/.test(str)
console.log(res)

相关文章

  • JS-正则封装校验

    一个简单的 正则校验封装方法

  • js-常用的正则判断

    // 电话号码isPhone:function(phone) {return/^1[34578]\d{9}$/.t...

  • js-文件的上传和下载

    js-文件的上传和下载

  • WebSocket 心跳 登陆 实例代码!

    · JS-前端代码. · JAVA-后端代码.

  • JS- 正则表达式

    一、正则表达式:对字符串进行模式匹配的强大工具。用来检查一个串是否含有某种子串,将匹配的子串替换或者从某个子串中取...

  • JS-正则表达式

    1:\d,\w,\s,[a-zA-Z0-9],\b,.,*,+,?,x{3},^,$分别是什么? 2:写一个函数t...

  • js-正则表达式

    为什么要学习正则:正则表达式通常被用来检索、替换那些符合某个模式的文本. 1.凡是有需要用户填写表单的地方,都需要...

  • JS-正则表达式

    1 正则表达式之基础 2 正则表达式之选择符 可使用竖线(|)来检测字符串左右任意一侧是否匹配 可使用中括号([]...

  • js-正则表达式

    两种模糊匹配如果正则只有精确匹配是没多大意义的,比如/hello/,也只能匹配字符串中的"hello"这个子串。 ...

  • JS-正则表达式

    正则表达式(英语:Regular Expression,在代码中常简写为regex、regexp或RE)语法/正则...

网友评论

    本文标题:js-正则

    本文链接:https://www.haomeiwen.com/subject/stmsudtx.html