参考:
https://juejin.im/post/5ac1f1106fb9a028be362731
1、检验字符串首尾是不是数字(首或者尾有就行)
var reg = /^\d|\d$/g;
2、首尾都是数字:首尾以数字结尾,中间匹配任意字符
var reg = /^\d[\w\W]*\d$/g;
3、找出所有的aabb形式
var reg = /(\w)\1(\w)\2/g;
var str = "cddeedd";
console.log(str.match(reg)); // ['ddee']
4、将所有的aabb形式替换成abab形式
var str = "ccddhhgg";
var reg = /(\w)\1(\w)\2/g;
console.log(str.replace(reg,"$2$2$1$1"));
console.log(str.replace(reg, function($0, $1, $2){ // 分别代表全局,第一个子表达式,第二个子表达式
return $2 + $1 + $2 + $1;
}))
5、驼峰命名
利用子表达式,匹配出-x(-和要转成大写的字符)
var reg = /-(\w)/g;
var str = 'hello-world-haha-heng';
var res = str.replace(reg,function($0,$1){
return $1.toUpperCase();
})
console.log(res); //helloWorldHahaHeng
6、找出ab相连的表达式中的a,替换成%
方法:正向断言
var str = 'abaaaa';
var reg = /a(?=b)/g; // 问号后面是b的
var reg = /a(?!b)/g; // 问号后面不是b的
console.log(str.replace(reg,"*")); // *baaaa
7、千位分隔符
方法:正向断言,从后往前$,匹配不是空位的位置加逗号
var str = "123123345";
var reg = /(?=(\B)((\d){3})+$)/g;
var res = str.replace(reg,',');
console.log(res);
8、字符串去重
var str = "aaabbbdddsss";
var reg = /(\w)\1*/g;
console.log(str.replace(reg,"$1"));
9、去除字符串的空格
最后一个\b表示匹配单词边界,比如'o ',被替换成o了
去除所有空格
" hello world ".replace(/\s/g,"") // "helloworld"
去除开头和结尾的空格
" hello world ".replace(/^(\s*)|(\s*)$/g,"") //"hello world"
去除中间的空格,保留两边的空格
" hello world fu jing wen ".replace(/(\S)\s+(\b)/g,"$1") //" helloworldfujingwen "
10、串中是否包含数字
var str = "hjadh";
var reg = /\d/g;
console.log(reg.test(str)); // false
11、是否包含连续重复的字母
var str = "aabcd";
var reg = /([a-zA-Z])\1/g;
console.log(reg.test(str)); // true
12、字符串是否以元音字母结尾
// 字符串是否以元音字母结尾
var str = "aabcdu";
var reg = /[aeiou]$/gi;
console.log(reg.test(str)); // true
13、是否包含连续出现三次的数字,如果有,就返回最新出现的,否则返回false
function containNum(str){
var reg = /\d{3}/g;
var res = str.match(reg);
if(res){
var result = res.slice(res.length-1);
return result
}else{
return false;
}
}
var str = "12345abc";
console.log(containNum(str));
14、判断是否符合某种格式 xxx-xxx-xxxx(x为数字)
var str = "123-451-423";
var reg = /^(\d{3}-){2}\d{4}$/g;
console.log(str.match(reg));
15、判断是否符合USD格式
以$开头,每隔3位有分隔符,如果有小数,小数位数为2
var str = "$1,234.23";
var reg = /^\$\d{1,3}(,\d{3})*(\.\d{2})?$/g;
console.log(str.match(reg));
16、获取url的参数
var url = 'https://www.google.com.hk/search?name=fujingwen&age=23&sex=female';
// var url = location.href;
function getPar(url){
var obj = {};
var reg = /\??(\w+)=(\w+)&?/g;
url.replace(reg, function($0,$1,$2){
obj[$1] = $2;
})
console.log(obj)
}
getPar(url);
// 验证邮箱
var reg = /^([a-zA-Z0-9_\-])+@([a-zA-Z0-9_\-])+(\.[a-zA-Z0-9_\-])+$/;
// 验证身份证号码,15位或者18位,15位全是数字,8位中前17位是数字,最后一位是数字或者x
var reg = /(^\d{15}$)|(^\d{18}$)|(^\d{17}(x|\d|X)$)/;
// 匹配汉字
var reg = /^[\u4e00-\u9fa5]*$/g;
网友评论