量词:通过量词可以设置一个内容出现的次数。
量词指对它前边的一个内容起作用,如果相对多个内容起作用,可以用()括起来。
{n}表示出现n次;
let reg = /a{3}/; // 表示a必须连续出现3次
let str = "4aa1a23";
console.log(reg.test(str)); // false
// 只对它前边的一个内容b起作用
let reg2 = /ab{3}/;
let str = "abbb";
let str2 = "ababab";
console.log(reg2.test(str)); // true
console.log(reg2.test(str2)); // false
// 如果想对多个内容起作用,可以用()括起来,例如:
// 表示,ab需要连续出现3次
let reg3 = /(ab){3}/;
let str = "ababab";
console.log(reg3.test(str)); // true
{n,}表示出现n次或多次
console.log(/a{1,}/.test('a')) // true
console.log(/a{1,}/.test('')) // false
{n,m}表示出现n-m次。
let reg2 = /ab{1,2}f/; // 表示b可以出现1-2次
let str = "af";
console.log(reg2.test(str)); // false
+表示至少一个,相当于{1,}
表示0个或多个,有没有都行相当于{0,}
?表示0个或1个,相当于{0,1}
^表示开头
// [^]里的^意思是除了,直接^表示必须以某个内容开头
$表示结尾
let reg = /^a/; // 必须以a开头
let reg2 = /a$/; // 必须以a结尾
// 创建一个正则,判断是否是合格的手机号
// 13033318821
// 第一位必须以1开头^1 第二位可以是3-9任意数字[3-9] 第三位后可以是任意数字9位([0-9]){9}
let phoneReg = /^1[3-9]([0-9]){9}$/;
let phone = 13033318821;
console.log(phoneReg.test(phone)); // true
.表示任意字符,但不能为空
let reg = /./;
console.log(reg.test("~!#$%^")); // true
console.log(reg.test("")); // false
如果想检查一个字符串中是否含有. 在正则表达式中可以使用\转义字符。
// \.表示 .
// \\表示 \
// \\\\表示 \\
let reg = /\./;
console.log(reg.test("~!#$%^")); // false
console.log(reg.test("~!#$%^.")); // true
- \w表示任意字母、数字、_
- \W除了任意字母、数字、_
- \d表示任意数字[0-9]
- \D除了数字[^0-9]
- \s表示空格
- \S表示除了空格
- \b表示单词边界
- \B除了单词边界
单词边界的用法演示:
// 在字符串中查找child这个单词
let reg = /child/;
console.log(reg.test("childs")); // true 查找的只是字符串中有没有含有child这个词,只有有则返回true
// 加上单词边界\b
let reg = /\bchild\b/;
console.log(reg.test("childs")); // false 查找的是child这个独立的单词,前边和后边没有跟其他内容
/^\s{0,}|\s{0,}$/g匹配开头和结尾的空格
// 删除两边空格的部分,保留中间空格部分
let info = " suli hello ";
info = info.replace(/^\s{0,}|\s{0,}$/g,""); // 将两边空格替换为空串
console.log(info); // suli hello