INNER CODE UNIT · JavaScript

regexpMatch

cfug/flutter.cn · tool/host-redirect/src/index.js:82

        const regexpMatch = pathToRegexp(redirect.source).exec(currentPath)
        if (regexpMatch) {
          let destination = redirect.destination
          const params = parse(redirect.source)
          for (let i = 0; i < params.length; i++) {
            const { name, modifier } = params[i]
            // 处理有命名的变量(类似 :name 、:name* 、:name? 等)
            if (name) {
              destination = destination.replaceAll(`:${name}${modifier}`, regexpMatch[i])
              destination = destination.replaceAll(`:${name}`, regexpMatch[i])
            }

            // 处理未命名的变量
            if (!name) {
              destination = destination.replaceAll(`:${i}`, params[i])
            }
          }
          return destination

View source record →

📰 Research Paper
Loading…
⏳ Fetching content…