例如,如果我想匹配IP,可以像这样分解它:
const octet = /d{1,3}/;
const ip = /{octet}.{octet}.{octet}.{octet}/;
您可以使用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)}`);
带有已声明为正则表达式字面的正则表达式,您可以使用其source
属性在没有封闭标签的情况下获取版本。在新的RegExp
构造函数中使用模板文字,创建您的新表达式。
const octet = /d{1,3}/;
const octetSource = octet.source;
const ip = new RegExp(`^${octetSource}\.${octetSource}\.${octetSource}\.${octetSource}$`);