📜  JavaScript |正则表达式 {X,Y} 量词(1)

📅  最后修改于: 2023-12-03 14:42:29.360000             🧑  作者: Mango

JavaScript | 正则表达式 {X,Y} 量词

介绍

在正则表达式中,用 {X,Y} 表示某个模式重复出现的次数范围。其中,X 为最少出现的次数,Y 为最多出现的次数,可以省略。如果省略 Y,则代表重复出现至少 X 次;如果既省略 X,又省略 Y,则表示重复出现任意次。

例如,{3,} 表示重复出现至少 3 次;{,5} 表示重复出现最多 5 次;{2,5} 表示重复出现 2 到 5 次。

示例

下面是一些 JavaScript 中使用 {X,Y} 量词的正则表达式示例:

匹配连续的数字
const str = "123456789";
const pattern = /\d{3,5}/g;

console.log(str.match(pattern)); // ["12345", "6789"]

上面的正则表达式匹配连续的数字,要求连续数字的个数在 3 到 5 之间。

匹配邮政编码
const str = "邮政编码:100029,电话:010-12345678";
const pattern = /[1-9]\d{5}(?!\d)/g;

console.log(str.match(pattern)); // ["100029"]

上面的正则表达式匹配邮政编码,要求邮政编码是 6 位数字。其中的 (?!\d) 表示后面不能紧跟数字,用于排除类似于电话号码等数字串。

匹配合法的 IP 地址
const str = "IP 地址:192.168.1.1,子网掩码:255.255.255.0";
const pattern = /^(?:(?:25[0-5]|2[0-4]\d|[01]?\d\d?)\.){3}(?:25[0-5]|2[0-4]\d|[01]?\d\d?)$/g;

console.log(str.match(pattern)); // ["192.168.1.1", "255.255.255.0"]

上面的正则表达式匹配合法的 IP 地址,要求 IP 地址的每一位都是 0 到 255 之间的数字。其中,(?:25[0-5]|2[0-4]\d|[01]?\d\d?) 表示匹配一个 0 到 255 的数字。

总结

{X,Y} 量词是正则表达式中常用的语法,用于表示某个匹配模式出现的次数范围。在使用时,要根据实际情况灵活运用,避免出现无法满足预期需求的问题。