在JavaScript中使用regex作为通配符比较两个字符串

o4hqfura  于 2023-08-08  发布在  Java
关注(0)|答案(1)|浏览(75)

这方面有各种各样的例子,也有各种各样的场景,我还没能找到我的具体场景,这就是为什么我在这里添加我的问题
我有两个字符串比较。其中一个包含一个变量,在第二个变量中被一个单词或短语替换,例如:

  • 变量=“文件组”
  • 字符串1:“以下%%变量%%已签名”
  • 字符串2:“以下一组文档已签名”

我想使用JavaScript来比较两个字符串,使用正则表达式或任何其他解决方案,只允许比较过程告诉我字符串是否相同,而不考虑被单个单词或短语替换的变量,如示例中所示。
谢啦,谢啦

b4wnujal

b4wnujal1#

您可以将string1转换为regex,它可以用于匹配其他字符串。要执行此操作,请执行以下操作:
1.转义正则表达式符号,
1.将所有与%%.+?%%匹配的内容替换为.+
1.添加^$以防止部分匹配。

const string1 = "The following %%variable%% has %%been%% signed"
const string2 = "The following jdfkdfk dfv dfv has been signed"
const r = new RegExp('^' + 
                string1
                    .replace(/[.*+?^${}()|[\]\\]/g, '\\$&')
                    .replace(/%%.+?%%/g, '.+') +
                '$')

console.log("Resulting pattern: " + r)
console.log(r.test(string2))
console.log(r.test('asd'))

字符串

相关问题