例如,如果我想匹配ips,我可以这样分解吗:
const octet = /\d{1,3}/;
const ip = /{octet}\.{octet}\.{octet}\.{octet}/;
答案 0 :(得分:6)
您可以混合使用new RegExp()
和模板文字来完成此操作。
下面是一个例子。
const octet = /\d{1,3}/;
const octetS = octet.source;
const ip = new RegExp(
`^${octetS}\\.${octetS}\\.${octetS}\\.${octetS}$`);
const ips = [
'127.0.0.1',
'10.0.2',
'12.10.2.5',
'12'];
for (const checkip of ips)
console.log(`IP: ${checkip} = ${ip.test(checkip)}`);
答案 1 :(得分:5)
使用已经声明的正则表达式文字,您可以使用其source
属性获取不带封闭标签的版本。在新的RegExp
构造函数中使用模板文字,创建新的表达式。
const octet = /\d{1,3}/;
const octetSource = octet.source;
const ip = new RegExp(`^${octetSource}\\.${octetSource}\\.${octetSource}\\.${octetSource}$`);