1、匹配任意字符
const regex = /[\d\D]/g、/[\w\W]/g、/[\s\S]/g 和 /[^]/g
2、表示十六进制颜色
const regex = /#([0-9a-fA-F]{6}|[0-9a-fA-F]{3})/g
3、匹配24小时制的时间
const regex = /^([01][0-9]|[2][0-3]):[0-5][0-9]$/
console.log( regex.test("23:59") );
console.log( regex.test("02:07") );
// => true
// => true
4、匹配日期
const regex = /^[0-9]{4}-(0[1-9]|1[0-2])-(0[1-9]|[12][0-9]|3[01])$/;
console.log( regex.test("2017-06-10") );
// => true
5、匹配window 操作系统文件路径
const regex = /^[a-zA-Z]:\\([^\\:*<>|"?\r\n/]+\\)*([^\\:*<>|"?\r\n/]+)?$/;
console.log( regex.test("F:\\study\\javascript\\regex\\regular expression.pdf") );
console.log( regex.test("F:\\study\\javascript\\regex\\") );
console.log( regex.test("F:\\study\\javascript") );
console.log( regex.test("F:\\") );
// => true
// => true
// => true
// => true
// => true
6、不匹配任何字符
const regex = /.^/;
7、数字的千位分隔符表示法
const regex = /(?!^)(?=(\d{3})+$)/g;
const result = "12345678".replace(regex, ',')
console.log(result);
// => "12,345,678
8、密码长度 6-12 位,由数字、小写字符和大写字母组成,但必须至少包括 2 种字符
const regex = /((?=.*[0-9])(?=.*[a-z])|(?=.*[0-9])(?=.*[A-Z])|(?=.*[a-z])(?=.*[A-
Z]))^[0-9A-Za-z]{6,12}$/ || /(?!^[0-9]{6,12}$)(?!^[a-z]{6,12}$)(?!^[A-Z]{6,12}$)^[0-9A-Za-z]{6,12}$/;
console.log( regex.test("1234567") ); // false 全是数字
console.log( regex.test("abcdef") ); // false 全是小写字母
console.log( regex.test("ABCDEFGH") ); // false 全是大写字母
console.log( regex.test("ab23C") ); // false 不足6位
console.log( regex.test("ABCDEF234") ); // true 大写字母和数字
console.log( regex.test("abcdEF234") ); // true 三者都有
9、匹配到开头和结尾的空白符,然后替换成空字符
function trim (str) {
return str.replace(/^\s*(.*?)\s*$/g, "$1");
}
console.log( trim(" foobar ") );
// => "foobar
10、将每个单词的首字母转换为大写
function titleize (str) {
return str.toLowerCase().replace(/(?:^|\s)\w/g, function (c) {
return c.toUpperCase();
});
}
console.log( titleize('my name is epeli') );
// => "My Name Is Epeli"
11、驼峰化
function camelize (str) {
return str.replace(/[-_\s]+(.)?/g, function (match, c) {
return c ? c.toUpperCase() : '';
});
}
console.log( camelize('-moz-transform') );
// => "MozTransform"
12、中划线化
function dasherize (str) {
return str.replace(/([A-Z])/g, '-$1').replace(/[-_\s]+/g, '-').toLowerCase();
}
console.log( dasherize('MozTransform') );
// => "-moz-transform
13、匹配成对标签
const regex = /<([^>]+)>[\d\D]*<\/\1>/;
const string1 = "<title>regular expression</title>";
const string2 = "<p>laoyao bye bye</p>";
const string3 = "<title>wrong!</p>";
console.log( regex.test(string1) ); // true
console.log( regex.test(string2) ); // true
console.log( regex.test(string3) ); // false
14、身份证
const regex = /^(\d{15}|\d{17}[\dxX])$/
15、IPV4 地址
const regex = /^((0{0,2}\d|0?\d{2}|1\d{2}|2[0-4]\d|25[0-5])\.){3}(0{0,2}\d|0?\d{2}|1\d{2}|2[0-4]\d|25[0-5])$/
16、匹配固定电话
055188888888
0551-88888888
(0551)88888888
const regex = /^(0\d{2,3}-?|\(0\d{2,3}\))[1-9]\d{6,7}$/
16、匹配浮点数
1.23、+1.23、-1.23
10、+10、-10
.2、+.2、-.2
const regex = /^[+-]?(\d+\.\d+|\d+|\.\d+)$/