JS:正则表达式的一些语法(量词:{n} {n,} {n,m} *)

量词:通过量词可以设置一个内容出现的次数。
量词指对它前边的一个内容起作用,如果相对多个内容起作用,可以用()括起来。
{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
  • 0
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值