1.匹配结尾的数字
如34AFyy92
正则如下/\d+$/g
2.统一空格个数,将字符串内的多个空格变成一个空格
例如: 蓝 色 梦 想
变成:蓝 色 梦 想
var str = '蓝 色 梦 想'
var reg = /\s+/g
str = str.replace(reg,' ')
3. 电话号码正则
/^\d{3,4}-\d{7,8}(-\d{3,4})?$/
区号必填为3~4位数字,区号之后用"-"与电话号码连接:
^\d{3,4}-
电话号码为7~8为的数字 /\d{7,8}/
分机号码为3~4位数字,非必填,若填以"-"与电话号码连接:(-\d{3,4})?
4. 使用正则表达式实现删除字符串中的空格
删除字符串两侧的空格
function trim(str){
return str.replace(/^\s+|\s$/g,'')
}
删除字符串左侧空白字符
function ltrim(str){
return str.replace(/^\s+/g,'')
}
删除字符串右侧的空白字符
function rtrim(str){
function str.replace(/\s$/g,'')
}
5. 获取文件信息
// 获取文件名
getFileName (name) {
return name.substring(0, name.lastIndexOf("."))
},
// 获取 .后缀名
getExtension (name) {
return name.substring(name.lastIndexOf("."))
}
//正则表达式获取.后缀名
/\.\w+$/g.exec(str)[0]
// 只获取后缀名
getExtension (name) {
return name.substring(name.lastIndexOf(".")+1)
}
6.贪婪与非贪婪
- 使用正则表达式实现将浮点数点左边的数每三位添加一个逗号
function toMoney(num) {
return num && num
.toString()
.replace(/(\d)(?=(\d{3})+\.)/g, function ($1, $2, $3) {
console.log($1, $2, $3);
return $2 + ',';
});
}
console.log(toMoney(1234567891.12));
// 1 1 891
// 4 4 891
// 7 7 891
// 1,234,567,891.12
-
正向前瞻
(?=pattern)的用法:在任何匹配pattern的字符串开始处匹配查找字符串 -
$1, $2, $3分别代表正则匹配的括号里的值。 注:这是一个非捕获匹配,也就是说,该匹配不需要获取供以后使用。 -
(\d{3})+\.说明匹配3个及3的倍数个数字加“.”结尾的 如:891.、567891.、234567891.。 -
(\d)(?=(\d{3})+\.)说明只有匹配到该数字后有3个及3的倍数个数字加“.”结尾的该数字被匹配。比如:7891.中的7被匹配,``4567891.中的4被匹配,1234567891.中的1被匹配。