gpt4 book ai didi

带有数组的javascript正则表达式模式

转载 作者:行者123 更新时间:2023-12-02 07:29:42 25 4
gpt4 key购买 nike

我想创建一个应该能够搜索数组的正则表达式模式。

假设:

var arr = [ "first", "second", "third" ];

var match = text.match(/<arr>/);

应该只能匹配

<first> or <second> or <third> ......

但应该忽略

<ffirst> or <dummy>

我需要一个有效的方法。

任何帮助都会很棒。谢谢

最佳答案

  1. 首先你可以做 array.map引用所有特殊的正则表达式字符。
  2. 然后你可以做array.join使用 | 连接数组元素并创建 RegExp 的实例。

代码:

function quoteSpecial(str) { return str.replace(/([\[\]^$|()\\+*?{}=!.])/g, '\\$1'); }

var arr = [ "first", "second", "third", "fo|ur" ];
var re = new RegExp('<(?:' + arr.map(quoteSpecial).join('|') + ')>');
//=> /<(?:first|second|third|fo\|ur)>/

然后使用这个 RegExp 对象:

'<first>'.match(re); // ["<first>"]

'<ffirst>'.match(re); // null

'<dummy>'.match(re); // null

'<second>'.match(re); // ["<second>"]

'<fo|ur>'.match(re); // ["<fo|ur>"]

关于带有数组的javascript正则表达式模式,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/23198779/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com