js 正则表达式 regexp \ \n \t \r [] ^ () \s \S \b \B \w \W \d \D 常用正则表达式 您所在的位置:网站首页 正则表达式匹配包括换行符吗 js 正则表达式 regexp \ \n \t \r [] ^ () \s \S \b \B \w \W \d \D 常用正则表达式

js 正则表达式 regexp \ \n \t \r [] ^ () \s \S \b \B \w \W \d \D 常用正则表达式

2023-12-01 02:42| 来源: 网络整理| 查看: 265

常用正则表达式

https://c.runoob.com/front-end/854

QQ: [1-9][0-9]{4,} (腾讯qq号从10000开始) 中文昵称2-8位: /^[\u4e00-\u9fa5]{2,8}$/ 手机号: /^1[3|4|5|7|8]\d{9}$/ 用户名: /^[a-Z0-9_-]{3,16}$/ 密码:/^[a-Z0-9_-]{6,18}$/ 十六进制值:/^#?([a-f0-9]{6}|[a-f0-9]{3})$/ 正则表达式 的作用

匹配特殊字符或有特殊搭配原则的字符的最佳选择

方法 reg.test(); 判断有没有匹配片段 返回true或false reg.test(//)reg.exec(); exec命名捕获分组 提取标签属性文本示例 不加 g reg.lastIndex不变reg.exec(str) == null reg.lastIndex 重置reg.exec(str) 匹配根据reg.lastIndex 匹配 str.match(); 字符串内检索指定的值 并返回str.replace(); 与正则表达式相匹配的值 替换str.search(); 检索与正则表达式相匹配的值 返回索引 -1没有匹配到str.split(); 字符串分成字符串数组 var reg = /h/g; var str = 'ddftthrh' str.replace(reg,'g');//"ddfttgrg" var reg = /ab/g var str = "abababab" console.log(reg.exec(str),reg.lastIndex) console.log(reg.exec(str),reg.lastIndex) console.log(reg.exec(str),reg.lastIndex) console.log(reg.exec(str),reg.lastIndex) console.log(reg.exec(str),reg.lastIndex) console.log(reg.exec(str),reg.lastIndex)

在这里插入图片描述

两种创建方式

直接量(推荐) new ReExp();

var reg = /abc/i;//直接量创建 i 忽视大小写 var reg = new RegExp('abc','i');// var reg = new RegExp(/abc/,'i');// var str = 'abcd'; reg.test(str);// true 修饰符 i g m

i 忽视大小写 g 执行全局匹配(查找所有匹配,而非找到第一个匹配后停止) m 执行多行匹配 gi 全局匹配+忽略大小写

m 多行匹配 要配合g一起使用

匹配多行以abc开头的字符串

var str = 'abcddd\nabcghhg\nabcghhg' var reg = /^abc/gm // 匹配abc开头的字符串 str.match(reg) // ["abc", "abc", "abc"] var reg2 = /^abc/g // 匹配abc开头的字符串 str.match(reg2) // ["abc"]

[]方括号 用于查找某个范围内的内容 [abc] 查找括号之间的取值范围 查看字符串有没有三位连续的数字

// [0-9] -->[0123456789] var reg = /[0-9][0-9][0-9]/g; var str = "1fd78fhjfd9997fdgdfg877nmkkkl"; str.match(reg);//["999", "877"]

尖角 ^ 在 [^] 是非,除了什么什么 外面是

var reg = /[^a][^b]/g;//查看字符串2位连续 不是ab的匹配判断 var str = "ab1cd"; str.match(reg);//["b1", "cd"]

()括号

var reg = /(abc|bcd)/g;//查看字符串 匹配abc或bcd var str = "abcdbcd"; str.match(reg);//["abc", "bcd"] 元字符

. 查找单个字符,除了换行和行结束符 . === [^\r\n] \w 查找单词字符 \w === [0-9A-z_] \W 查找非单词字符 \W === [^\w] \d 查找数字字符 \d === [0-9] \D 查找非数字字符 \D === [^\d] \s 查找空白字符(空格符,制表符\t,回车符\r,换行符\n,垂直换行符\v,换页符\f) \s === [\n\f\t] \S 查找非空白字符 \S === [^\s] \b 匹配单词边界 \B 匹配非单词边界 \0 查找null字符 \n 换行符 \f 换页符 \r 行结束符 \t 缩进符 Tab \v 垂直换行符 \xxx 查找以八进制数 xxx规定的字符 \xdd \uxxxx

匹配一切字符 /[\u0000-\uffff]/g /[\s\S]/ /[\d\D]/

// uxxxx var reg = /\u56fa\u5b9a\u56fa\u5b9a\u4e2a/g var str = "固定固定个固定固定个" str.match(reg);//["固定固定个", "固定固定个"] // \w === [0-9A-z_] // \W === [^\w] var reg = /\w/g;//查看字符串 var str = "abcdbcd"; str.match(reg);//["abcdbcd"] // \b 单词边界 var reg = /\bklk\b/g var str = "abc klk lop" str.match(reg);//["klk"] // \B [^\b] var reg = /\bklk\B/g var str = "abc klklop" str.match(reg);//["klk"]

贪婪匹配 能匹配多的就不匹配少

var reg = /\w{2,3}/g; // 匹配包含x至y个n的序列字符串 var str = "aaaaa" str.match(reg);// ["aaa", "aa"]

非贪婪匹配 能匹配少的就不匹配多

var reg = /\w{2,3}?/g; // 匹配包含x至y个n的序列字符串 var str = "aaaaa" str.match(reg);// ["aa", "aa"] 括号 [] 中括号 字符集合 {} 大括号 量词符 () 小括号 表示优先级 量词

用于设定某个模式出现的次数 n+ 匹配任何包含至少一个n的字符串 n* 匹配任何包含0个n或多个n的字符串 n? 匹配任何包含0个n或一个n的字符串 n{x} 匹配包含x个n的序列字符串 n{x,y} 匹配包含x至y个n的序列字符串 中间不要有空格 n{x,} 匹配包含至少x个n的序列字符串 n$ 匹配任意结尾为n的字符串 ^n 匹配任意开头为n的字符串 ?=n 匹配任意字符其后紧接字符为n的字符 ?!n 匹配任意字符其后紧接字符不为n的字符

var reg = /s+/g var str = "sdsd" str.match(reg);// ["s", "s"] var reg = /\w+/g;// \w可以出现一次或多次 var str = "sdsd" str.match(reg);// ["sdsd"] // 贪婪匹配 能匹配多个就不匹配少 var reg = /\w*/g;// \w 能识别到 + 最后一个光标定位点 var str = "sdsd" str.match(reg);// ["sdsd",""] var reg = /\d*/g; //\d 不能识别到 光标定位点 下一个字符 光标定位点 。。。 var str = "sdsd" str.match(reg);// ["","","",""] var reg = /\w?/g; var str = "aaa" str.match(reg);// ["a","a","a",""] var reg = /\w{2}/g; var str = "aaa" str.match(reg);// ["aa"] // 贪婪匹配 能匹配多个就不匹配少 var reg = /\w{2,3}/g; // 匹配包含x至y个n的序列字符串 var str = "aaaaa" str.match(reg);// ["aaa", "aa"] var reg = /\w{2,}/g; // 匹配包含至少x个n的序列字符串 var str = "aaaa" str.match(reg);// ["aaaa"] var reg = /\w$/g; // 匹配任意结尾为n的字符串 var str = "abcd" str.match(reg);// ["d"] var reg = /^abc$/g; // abc既是开头又是结尾 var str = "abc" str.match(reg);['abc'] // 正向预查 正向断言 var reg = /\w(?=c)/g; // 后面链接c的\w var str = "abc" str.match(reg);// ["b"] 后面的b var reg = /b(?!c)/g; // 后面不链接c的b var str = "abcbb" str.match(reg);// ["b","b"]

检验一个字符串首尾是否有数字

var str = "123hjghj8" var reg = /^\d|\d$/g;//开头或结尾是数字 // /^\d[\s\S]*\d$/g 开头和结尾是数字 str.match(reg); 属性

reg.ignoreCase 正则写了 i 返回true reg.global 正则写了 g 返回true reg.multiline 正则写了 m 返回true reg.source 正则内容 reg.lastIndex 游标

特殊字符

转义字符 \

var str = "abc\"hfgufhui"; console.log(str);// abc"hfgufhui var str2 = "abc\\hfgufhui"; console.log(str2);// abc\hfgufhui var str3 = "\ sdad\ dsfsf\ "

在这里插入图片描述

换行字符 \n 在这里插入图片描述 行结束符 \r 回车代表 \r\n 缩进 \t

var str = "abc\thjkhu";

在这里插入图片描述

题目

匹配 xxxx 格式

// \1 反向引用第一个子表达式((\w))引用的内容 var reg = /(\w)\1\1\1/g; var str = "dddd-ghjhjfgh-kkkk" str.match(reg);//["dddd", "kkkk"]

匹配 aabb 格式

var reg = /(\w)\1(\w)\2/g; var str = "ddff-ghjhjfgh-kkkk" str.match(reg);//["ddff", "kkkk"] console.log(reg.exec(str))

在这里插入图片描述 aabb -> bbaa

var reg = /(\w)\1(\w)\2/g; var str = 'aabb' str.replace(reg,"$2$2$1$1");//aabb

the-first-name 小驼峰式写法 theFirstName

var reg = /-(\w)/g; var str = 'the-first-name' // str.replace(reg,'$1'.toUpperCase()); 无效还是 thefirstname str.replace(reg,function($,$1){ return $1.toUpperCase() });// theFirstName

aaaaabbbbbbbbbbbbccccccc — abc

var str = 'aaaaabbbbbbbbbbbbccccccc'; reg = /(\w)\1*/g; str.replace(reg,'$1');//abc

科学计数法

var str = "10000000000" var reg = /(?=(\B)(\d{3})+$)/g ; // 空后面跟着 非单词边界 3的位数个 1到多个数字 重后往前($) str.match(reg) str.replace(reg,'.');//"10.000.000.000"

匹配 xx-xx 格式

var str = 'xxyyzlkk' str.match(/\w{2}/g).join('-') //xx-yy-zl-kk

匹配 aa-bb 格式

var str = 'xxyyzzkkjklo' str.match(/(\w)\1/g).join('-');//"xx-yy-zz-kk"

匹配非 汉字字母数字

var str = 'wer123!@#$_}{||_ =4+' str.match(/[^A-Za-z0-9\u4e00-\u9fa5]/g)//["!", "@", "#", "$", "_", "}", "{", "|", "|", "_", " ", "=", "+"] // 排除其它特殊字符 _ var str1 = 'wer123!_____&&&88+4+' str1.match(/[^A-Za-z0-9_\u4e00-\u9fa5]/g) // ["!", "&", "&", "&", "+", "+"]


【本文地址】

公司简介

联系我们

今日新闻

    推荐新闻

    专题文章
      CopyRight 2018-2019 实验室设备网 版权所有