首页 > 解决方案 > JavaScript 是否支持复合正则表达式?

问题描述

例如,如果我想匹配 ips,我可以这样分解它:

const octet = /\d{1,3}/;
const ip = /{octet}\.{octet}\.{octet}\.{octet}/;

标签: javascriptregex

解决方案


你可以混合使用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)}`);


推荐阅读