JavaScript支持复合正则表达式



例如,如果我想匹配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}$`);

最新更新