正则规则转成字符不能使用是为什么?

发布于 2022-09-12 13:43:18 字数 309 浏览 41 评论 0

image.png

image.png

如上图正则规则转字符以后报错

image.png

image.png

不转字符就可以,我想让正则动态化怎么办呢?

如果你对这篇内容有疑问,欢迎到本站社区发帖提问 参与讨论,获取更多帮助,或者扫码二维码加入 Web 技术交流群。

扫码二维码加入Web技术交流群

发布评论

需要 登录 才能够评论, 你可以免费 注册 一个本站的账号。

评论(4

薄荷港 2022-09-19 13:43:18

字符是字符,长得像正则它还是字符,而没有“转成字符串”,所以也不能直接用来当作正则表达式使用。
RegExp 构造函数可以以字符串为模板生成正则表达式,使用的时候不需要斜杠 /ig等标记连成字符串后作为第二个参数传入:

const regStr = `^(\\d{0,${intDataNum}})(\\.(\\d{0,${decDataNum}}))?

字符是字符,长得像正则它还是字符,而没有“转成字符串”,所以也不能直接用来当作正则表达式使用。
RegExp 构造函数可以以字符串为模板生成正则表达式,使用的时候不需要斜杠 /ig等标记连成字符串后作为第二个参数传入:

const regExp = new RegExp(regStr, 'g')

当然,环境安全的前提下,还可以使用 eval 函数:

const regStr = `/^(\\d{0,${intDataNum}})(\\.(\\d{0,${decDataNum}}))?$/g`
const regExp = eval(regStr)
_畞蕅 2022-09-19 13:43:18

用构造函数呀
Regexp

new RegExp('ab+c', 'i');

接受的是字符串,所以想传什么传什么

咿呀咿呀哟 2022-09-19 13:43:18

字符串 string 哪来的 '/xxx/g'.test('yyy') 方法?

你不得先转成 RegExp 对象 new RegExp('/xxx/g').test('yyy') 再调用吗?

千秋岁 2022-09-19 13:43:18

image.png
image.png
——————————————————————————————————

后添加
image.png
image.png

~没有更多了~
我们使用 Cookies 和其他技术来定制您的体验包括您的登录状态等。通过阅读我们的 隐私政策 了解更多相关信息。 单击 接受 或继续使用网站,即表示您同意使用 Cookies 和您的相关数据。
原文