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

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

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

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

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

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

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

回答

用构造函数呀
Regexp

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

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

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

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

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

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

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

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

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

const regExp = eval(regStr)

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

以上是 正则规则转成字符不能使用是为什么? 的全部内容, 来源链接: utcz.com/a/79617.html

回到顶部