1.修饰符
i 执行时不区分大小写
g 全局查询
m 执行多行匹配
2.模式
/*查询[]用于查找某个范围内的字符*/
[] 查询方括号中的所有字符 // [ab] 查询包含ab的字符
[0-9] 查询任何从0-9的数字
(x|y) 查询任何以|分割的选项
/*拥有特殊含义的字符*/
\d 查找数字
\s 查找空白字符
\b 匹配单词边界
\uxxxx 查找以十六进制数 xxxx 规定的 Unicode 字符。
/*量词*/
n+ 匹配至少包含一个n的字符串
n* 匹配包含零个或多个n的字符串
n? 匹配包含零个或一个n的字符串
?= 只匹配一个位置
$& 与正则表达式相匹配的子串
3.使用
eg: let reg=/e/
reg.test("hello word") // 查找是否包含e ,有返回true,没有返回false
使用 test()方法
4.常用的正则方法
1 数字:^[0-9]*$
2 n位的数字:^\d{n}$
3 至少n位的数字:^\d{n,}$
4 m-n位的数字:^\d{m,n}$
5 零和非零开头的数字:^(0|[1-9][0-9]*)$
6 非零开头的最多带两位小数的数字:^([1-9][0-9]*)+(.[0-9]{1,2})?$
7 带1-2位小数的正数或负数:^(\-)?\d+(\.\d{1,2})?$
8 正数、负数、和小数:^(\-|\+)?\d+(\.\d+)?$
9 有两位小数的正实数:^[0-9]+(.[0-9]{2})?$
10 转化为千分位:money.replace(/\d{1,3}(?=(\d{3})+(\.\d*)?$)/g, '$&,') 或者toLocaleString()
5.Vue中千分位过滤器
Vue.filter('formatMoney', function (value) {
if (!value) {
return ''
}
if (value.replace) {
value = value.replace(/,/g, '')
}
if (!value || value === '') return '0.00'
value = Number(value).toLocaleString()
if (value.indexOf('.') === -1) {
value = value + '.00'
}
return value
})
Vue.prototype.$formatMoney = function (value) {
if (!value || value === '--') {
return '0.00'
}
if (value.replace) {
value = value.replace(/,/g, '')
}
let val = new Big(value).toString()
if (val.indexOf('.') < 0) {
return val.replace(/(?=\B(?:\d{3})+\b)(\d{3}(\.\d+$)?)/g, ',$1') + '.00'
} else {
return new Big(value).toFixed(2).replace(/(?=\B(?:\d{3})+\b)(\d{3}(\.\d+$)?)/g, ',$1')
}
}