可以使用正则表达式的 replace() 方法来实现这个功能。首先,我们需要将输入的字符串中的 . 替换成 \.,将 * 替换成 .*。然后,我们可以使用 RegExp 对象来创建一个正则表达式,然后使用 test() 方法来判断输入的字符串是否与正则表达式匹配。

下面是一个实现的例子:

function matchPattern(pattern, str) {
  // 将 '.' 替换成 '\.', 将 '*' 替换成 '.*'
  pattern = pattern.replace(/\./g, "\.").replace(/\*/g, "\.*");
  
  // 创建正则表达式对象
  var regex = new RegExp("^" + pattern + "$");
  
  // 使用 test() 方法判断输入的字符串是否与正则表达式匹配
  return regex.test(str);
}

// 测试
console.log(matchPattern("te.st", "test")); // true
console.log(matchPattern("te.st", "tst")); // false
console.log(matchPattern("te*st", "test")); // true
console.log(matchPattern("te*st", "tst")); // true

在上面的例子中,我们定义了一个 matchPattern() 函数,它接受两个参数:patternstrpattern 是要匹配的模式,str 是要匹配的字符串。函数首先将 pattern 中的 . 替换成 \.,将 * 替换成 .*,然后使用 RegExp 对象创建一个正则表达式。最后,使用 test() 方法判断输入的字符串 str 是否与正则表达式匹配,如果匹配则返回 true,否则返回 false


原文地址: https://www.cveoy.top/t/topic/o9oT 著作权归作者所有。请勿转载和采集!

免费AI点我,无需注册和登录