作者:小5聊基础
简介:一只喜欢全栈方向的程序员,欢迎咨询,尽绵薄之力答疑解惑
编程原则:Write Less Do More
【正则表达式特点】
1)文本模式,能读懂字符串匹配规则<br/>
2)写法<br/>
var re=new RegExp('规则', '可选参数');<br/>
var re=/规则/修饰参数;<br/>
3)修改符<br/>
编号 | 语言或插件 | 修饰符 | 说明 |
---|---|---|---|
1 | 正则表达式 | g | 可以查找字符串中所有的匹配项 |
2 | 正则表达式 | i | 不区分大小写匹配 |
3 | 正则表达式 | m | 可以使^和$匹配一段文本中每行的开始和结束位置。 g只匹配第一行,添加m之后实现多行。 以下实例字符串中使用\n来换行 |
4 | 正则表达式 | s | 默认情况下的圆点 . 是 匹配除换行符\n之外的任何字符,加上s之后,.中包含换行符\n |
【保留纯数字正则表达式解析】
'a1b2c3d'.replace(/[^\d]/g, "")
1)//g,为正则表达式写法之一,g是修饰符,全匹配<br/>
2)//i,如果不加修饰符,那么结果如下<br/>
只清匹配清除了第一个<br/>
3)中阔号[] <br/>
匹配中括号内的字符中的任意一个,比如:清除字符串中有abc字符<br/>'a1b2c3d'.replace(/[abc]/g, "")
4)^符号,以紧挨的元素开头<br/>
相反的符号是$,以紧挨的元素结尾<br/>
5)\d,匹配一个数字,0-9 <br/>
6)组合理解,1 <br/>
匹配与数字靠近的字符 <br/>
【保留1位小数点】
a13.215.5.55.'.replace(/[^\d\.]/g, "").replace('.', "@#@").replace(/[\.]/g, "").replace('@#@', ".")
通过上面正则表达式的分析,实现保留2位小数,这里用到了一个小技巧<br/>
1)实现保留1位小数点<br/>
2)既然是小数,那么就会有小数点符号<br/>
3)表达式:replace(/2/g, "") <br/>
清除非数字和小数点的符号
4)表达式:replace('.', "@#@") <br/>
先将第一个小数点使用符号进行占位代替
5)表达式:.replace(/[.]/g, "") <br/>
匹配字符串中有小数点的去掉
6)表达式,.replace('@#@', ".") <br/>
最后再将占位符替换回来小数点
【保留2位小数点】
通过上面步骤清除非数字和小数点后,就可以使用下面表达式保留小数点位数了
'132.25545'.replace(/^(\-)*(\d+)\.(\d\d).*$/, '$1$2.$3')
1)$1$2.$3,表示匹配出对应的第一、第二、第三个表达式 <br/>
2)如果想保留1位小数,那么第三个表达式改为:(\d) <br/>