正则表达式
创建和测试正则表达式
// 第一种
var reg = new RegExp(/123/); // 匹配包含123即可
console.log(reg);
// 第二种
var reg = /abc/; // 匹配包含abc
console.log(reg);
// 测试正则表达式
var reg = /abc/; // 匹配包含abc即可
console.log(reg.test("ababd"));
符号用法说明
边界符
^ : 表示匹配行首的文本(以谁开始)
// var reg = /^abc/;// 以abc为开头
$:表示匹配行尾的文本(以谁结束)
// var reg = /abc$/;// 以abc为结尾
如果^和$同时使用的话,就变成精确匹配
var reg = /^abc$/;// 精确匹配abc
字符类
[]中括号的意思是,一系列字符匹配其中之一即可
var reg = /[abc]/;// 包含a或b或c
[]多选一,^$同时使用的话就是精确匹配
var reg = /^[abc]$/;// 必须是a或b或c中的一个
console.log(reg.test("a")); // true
console.log(reg.test("ab")); // false
// var reg = /^[a-zA-Z0-9_-]$/;// 字符组合
// console.log( reg.test('a') );// true
// console.log( reg.test('K') );// true
// console.log( reg.test('6') );// true
// console.log( reg.test('6a3') ); // false
// var reg = /^[^a-zA-Z0-9_-]$/; // 取反
// console.log(reg.test("a")); // false
// console.log(reg.test("*")); // true
量词类
*:出现0次或者更多次
// var reg = /^[a-z]*$/;
// console.log( reg.test('') );// true
// console.log( reg.test('a') );// true
// console.log( reg.test('aa') );// true
+:出现1次或者更多出>=1
// var reg = /^[a-z]+$/;
// console.log( reg.test('') ); // false
// console.log( reg.test('a') );// true
?:重复0次或1次
// var reg = /^[a-z]?$/;
// console.log( reg.test('') );// true
// console.log( reg.test('a') );// true
{n}重复n次
// var reg = /^[a-z]{3}$/;
// console.log( reg.test('a') ); // false
// console.log( reg.test('ab') ); // false
// console.log( reg.test('abc') );// true
{n,} 重复n次或更多次
// var reg = /^[a-z]{3,}$/;
// console.log(reg.test('a')); // false
// console.log(reg.test('ab')); // false
// console.log(reg.test('abc'));// true
// console.log(reg.test('abcd'));// true
{n,m} 重复n到m次
var reg = /^[a-z]{3,5}$/;
console.log(reg.test("a")); // false
console.log(reg.test("ab")); // false
console.log(reg.test("abc")); // true
console.log(reg.test("abcd")); // true
console.log(reg.test("abcde")); // true
console.log(reg.test("abcdef")); // false
小括号
var reg = /^(哇哈哈|矿泉水|可乐)$/;
console.log( reg.test('哇哈哈哈') );
console.log( reg.test('哇哈哈') );
console.log( reg.test('矿泉水') );
预定义类
\d:匹配0-9之间任意一个数字,相当于[0-9]
\D:匹配除0-9之外任意字符,相当于[^0-9]
\w:匹配任意字母,数字和下划线,相当于[A-Za-z0-9_]
\W:匹配任意除字母,数字和下划线之外任意字符,相当于[^A-Za-z0-9_]
\s:匹配空格(换行符,制表符,空格符等),相当于[\t\r\n\v\f]
\S:匹配除空格之外任意字符,相当于[^\t\r\n\v\f]
正则表达式中的替换
- 修饰符:g全局,i大小写
- 屏蔽敏感字
// 字符串:replace
var str = 'abcdefgCabcd';
str = str.replace(/c/gi, '&&&&&&&&&&&&&');
console.log( str );
几种常用的正则表达式:
/^1[3|4|5|7|8]\d{9}$ /; // 手机号码的正则表达式
/^ [1-9]\d{4,}$ /; // qq号的正则表达式
/^ [a-zA-Z0-9_-]{6,16}$ /;// 密码框的正则表达式
/^ [\u4e00-\u9fa5]{2,8}$ /;// 昵称的正则表达式
/^\d{6}$/;// 短信验证的正则表达式