gpt4 book ai didi

javascript - 在 JavaScript 中创建动态正则表达式匹配

转载 作者:太空宇宙 更新时间:2023-11-04 01:53:28 33 4
gpt4 key购买 nike

有没有办法使用 NodeJS 在 JavaScript 中定义新的正则表达式字符模式?例如,将 /hello\sworld/gm 转换为 /{message}/gm,其中 {message} 被解释为匹配“hello world”或我决定的任何其他字符串。

本质上我是想避免这种情况:

var message = "hello world";    
(new RegExp(message, "gm")).test(someString);

希望得到类似的东西:

/{message}/gm.test(someString);

我想指出的是,它不应仅适用于 test 方法。 RegExp 用于匹配、测试、搜索等的任何方法都应该有效。我想如果有办法覆盖这些功能,这是可能的吗?或者有没有办法编辑对象创建时的 RegExp 参数?

这个想法是我将 {message} 定义为某种含义,并且可以在全局范围内对其进行解释,而不必处理将变量连接到每个正则表达式模式中的情况。

我知道其他人之前曾询问过动态正则表达式。所有这些问题的答案是使用 RegExp 构造函数。我想知道是否有替代方案,可能比如覆盖普通 JavaScript 类。

另请注意,我并不是在问这是否是一个好的做法。我问的是是否有可能有或没有良好的实践。

<小时/>

为清楚起见,应在任何文件中创建的每个正则表达式中替换 {message}。所以 /{message}//bananas:\s{message}/ 分别变成 /hello\sworld//bananas:\shello\sworld/ 等等。

最佳答案

不,这是不可能的。您能做的最好的事情就是创建一个函数,该函数将接受一个字符串,替换 {message},创建一个 RegExp 对象并返回它。

关于javascript - 在 JavaScript 中创建动态正则表达式匹配,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/48812556/

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