gpt4 book ai didi

javascript - 使用对象属性构造正则表达式时量词无效

转载 作者:行者123 更新时间:2023-11-29 22:10:29 24 4
gpt4 key购买 nike

我正在尝试从对象属性动态构造一个简单的正则表达式。

var type = 'bold';

var styles = {
"bold italic" : "***",
"bold" : "**",
"italic" : "*"
};

var re = new RegExp(styles[type], 'g');

但是,我返回了一个无效量词错误。

如果我把变量放在引号中,像这样:

var re = new RegExp('"' + styles[type] + '"', "g");

type == 'italic' 但不是 'bold' 时它工作正常

谁能解释为什么会这样,并提供修复方法?

最佳答案

在正则表达式中,字符 * is a quantifier .表达式:

a*

表示 a 零次或多次(a 也可以是表达式)。

当您尝试匹配 * 本身而不是将其用作量词时,您应该将其转义:

var styles = {
"bold italic" : "\\*\\*\\*",
"bold" : "\\*\\*",
"italic" : "\\*"
};

关于javascript - 使用对象属性构造正则表达式时量词无效,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/18345070/

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