糖尿病康复,内容丰富有趣,生活中的好帮手!
糖尿病康复 > javascript中正则匹配多个条件 常用正则匹配 正则详解

javascript中正则匹配多个条件 常用正则匹配 正则详解

时间:2023-08-14 07:20:16

相关推荐

javascript中正则匹配多个条件  常用正则匹配  正则详解

javascript中正则匹配多个条件, 常用正则匹配

正则表达式常用方法实现其他的常用正则匹配详解

注意: 本篇文章是根据在下日常编码过程中逐渐丰富的, 越往后看, 收获越丰富, 收藏起来以后随时回顾

准备工作1, 汉字和unicode码的在线转换网址/tools/unicode.aspx2, 正则在线生成地址/regex/create_reg

正则表达式常用方法

截图来自:: /jsref/jsref_obj_regexp.asp

实现

目标: 把 “10月29日 12:43:46” 中, ‘年’和’月’替换为’-’, '日’替换为 ’ ’

1, 常用替换方法实现

let str= "10月29日 12:43:46";str = str.replace("年","-")str = str.replace("月","-")str = str.replace("日","")console.log(str)// -10-29 12:43:46

2, 替换为 js正则 + unicode编码 实现

let str= "10月29日 12:43:46";str = str.replace(/[\u5e74]/g,"-")str = str.replace(/[\u6708]/g,"-")str = str.replace(/[\u65e5]/g,"")console.log(str)// -10-29 12:43:46

3, 简略写法, 一行搞定

// 第一种写法let str= "10月29日 12:43:46";str = str.replace(/[\u5e74]|[\u6708]/g, "-").replace(/[\u65e5]/g, "")// 第二种写法"10月29日 12:43:46".replace(/[\u5e74]|[\u6708]/g, "-").replace(/[\u65e5]/g, "")console.log(str)// -10-29 12:43:46// 第三种写法str = '11月12日';str = str.replace(/[\u5e74\u6708\u65e5]/g,function(a){switch(a){case '年':return '-';case '月':return '-';case '日':return '';}});console.log(str);// -11-12// 感觉还有更高级更牛叉的写法, 我找了半天没找出来, 希望大家有更高级写法的留言, 我会及时更新让大家少走弯路

其他的常用正则匹配

// 匹配国内手机号/0?(13|14|15|18)[0-9]{9}/.test('13233333333')// 匹配国内电话号/[0-9-()()]{7,18}/.test('4908595')// 匹配email/\w[-\w.+]*@([A-Za-z0-9][-A-Za-z0-9]+\.)+[A-Za-z]{2,14}/.test('21111111111@')// 匹配日期/\d{4}(\-|\/|.)\d{1,2}\1\d{1,2}/.test('-11-11')// 匹配邮政编码/\d{6}/.test('100000')// 匹配身份证号/\d{17}[\d|x]|\d{15}/.test('1415231111503X')// 是否存在中文字符/[\u4e00-\u9fa5]/.test('文字文字')// 是否所有文字全是中文字符/^[\u4e00-\u9fa5]+$/i.test("中文中文")/* 验证数字:*/ ^[0-9]*$ /* 验证n位的数字:*/ ^\d{n}$ /* 验证至少n位数字:*/ ^\d{n,}$ /* 验证m*/ -n位的数字:^\d{m,n}$ /* 验证零和非零开头的数字:*/ ^(0|[1-9][0-9]*)$ /* 验证有两位小数的正实数:*/ ^[0-9]+(.[0-9]{2})?$ /* 验证有1*/ -3位小数的正实数:^[0-9]+(.[0-9]{1,3})?$ /* 验证非零的正整数:*/ ^\+?[1-9][0-9]*$ /* 验证非零的负整数:*/ ^\-[1-9][0-9]*$ /* 验证非负整数(正整数*/ + 0) ^\d+$ /* 验证非正整数(负整数*/ + 0) ^((-\d+)|(0+))$ /* 验证长度为3的字符:*/ ^.{3}$ /* 验证由26个英文字母组成的字符串:*/ ^[A-Za-z]+$ /* 验证由26个大写英文字母组成的字符串:*/ ^[A-Z]+$ /* 验证由26个小写英文字母组成的字符串:*/ ^[a-z]+$ /* 验证由数字和26个英文字母组成的字符串:*/ ^[A-Za-z0-9]+$ /* 验证由数字、26个英文字母或者下划线组成的字符串:*/ ^\w+$ /* 验证用户密码*/ :^[a-zA-Z]\w{5,17}$ 正确格式为:以字母开头,长度在6-18之间,只能包含字符、数字和下划线。 /* 验证是否含有*/ ^%&',;=?$\" 等字符:[^%&',;=?$\x22]+ /* 验证汉字:*/ ^[\u4e00-\u9fa5],{0,}$ /* 验证身份证号(15位或18位数字):*/ ^\d{15}|\d{}18$ /* 验证一年的12个月:*/ ^(0?[1-9]|1[0-2])$ 正确格式为:“01”-“09”和“1”“12” /* 验证一个月的31天:*/ ^((0?[1-9])|((1|2)[0-9])|30|31)$ 正确格式为:01、09和1、31。 /* 整数:*/ ^-?\d+$ /* 非负浮点数(正浮点数*/ + 0):^\d+(\.\d+)?$ /* 正浮点数*/ ^(([0-9]+\.[0-9]*[1-9][0-9]*)|([0-9]*[1-9][0-9]*\.[0-9]+)|([0-9]*[1-9][0-9]*))$ /* 非正浮点数(负浮点数*/ + 0) ^((-\d+(\.\d+)?)|(0+(\.0+)?))$ /* 负浮点数*/ ^(-(([0-9]+\.[0-9]*[1-9][0-9]*)|([0-9]*[1-9][0-9]*\.[0-9]+)|([0-9]*[1-9][0-9]*)))$ /* 浮点数*/ ^(-?\d+)(\.\d+)?$

详解

1, 正则方法

// ①, 替换 replace // 把字符串 '123' 中的 '1' 替换为 '2''123'.replace(/1/,"2");// '223'// 多个替换 把字符串 '123' 中的 '1' 替换为 '2', '3' 替换为 '4'123'.replace(/1/,"2").replace(/3/,"4");// '224'// ②, 判断 test// 第一位是否数字/[0-9]/.test('23') 或者 /^[0-9]/.test('23')// 结尾是否数字/[0-9]$/.test('23')// 整体是否数字/^[0-9]+$/.test('23')// 中间 '+' 表示至少有一位数字// ③, 查找 match// 把字符串中 <b>单个数字</b> 找出来并分割成数组'1abcd12----123'.match(/[1-9]/g)// ['1', '1', '2', '1', '2', '3']// 把字符串中所有的 数字 查找出来并分割成数组'1abcd12....123----1234'.match(/[1-9]+/g)// ['1', '12', '123', '1234']// 把字符串中所有的 字母 查找出来并分割成数组'a1234aB....abC----Abcd'.match(/[a-zA-Z]+/g)// ['a', 'aB', 'abC', 'Abcd']// split 不做解释

2, 正则判断和替换

// 判断// ①, 单字符匹配 (最简单的正则匹配)/1/.test('1') // 判断字符串中是否包含 '1' true/123/.test('123') // 判断字符串中是否包含 '123' true/*同理 /abc/.test('abc') /文字/.test('文字') /.../.test('...') 均可使用tips: 使用特殊字符的时候需要加转义字符 \例如: /\/\/\//.test('///') // 判断字符串中是否含有'///'*/// ②, 常用字符串判断// 数字, 且不为空/^[0-9]+$/.test('23') // true// 字母, 且不为空/^[a-zA-Z]+$/.test('ABCabc')// true// 字母, 小写, 且不为空/^[a-z]+$/.test('abc')// true// 字母, 大写, 且不为空/^[A-Z]+$/.test('ABC')// true// 替换// ①, 常用字符串替换/* 整体替换 字符串中只要出现与正则匹配到的字符, 立即替换 */// 数字, 替换为 ""'23'.replace(/[0-9]/g,"") // ""// 字母, 替换为 ""'abcdABCD'.replace(/[a-zA-Z]/g,"") // ""// 字母, 小写, 替换为 ""'abcd'.replace(/[a-z]/g,"") // ""// 字母, 大写, 替换为 ""'ABC'.replace(/[A-Z]/g,"") // ""/* 小部分替换 ( 把字符串中 前两次 出现的数字替换为 '-' )*/var i = 0;'123456789'.replace(/[1-9]/g, a=> {return (i++ < 2) ? "-" : a; }) // --3456789// 查找// ①, 字符 个数 查找 ( 学会这个细节即可解锁许多骚操作 )// 0 个 或 1 个 '?''12abcd23'.match(/[1-9]?/g)// ['1', '2', '', '', '', '', '2', '3', '']// 0 个 或 多 个 '*''12abcd23'.match(/[1-9]*/g)// ['12', '', '', '', '', '23', '']// 多 个 '+''12abcd23'.match(/[1-9]+/g)// ['12', '23']// n 个 在下方例子中 n=2 , '{}'//'12abcd23'.match(/[1-9]{n}/g) // n = 2'12abcd23'.match(/[1-9]{2}/g)// ['12', '23']

如果觉得《javascript中正则匹配多个条件 常用正则匹配 正则详解》对你有帮助,请点赞、收藏,并留下你的观点哦!

本内容不代表本网观点和政治立场,如有侵犯你的权益请联系我们处理。
网友评论
网友评论仅供其表达个人看法,并不表明网站立场。