我正在尝试将 mysql 查询的 WHERE 子句解析为表达式以从 json 文件中获取数据例如:`price`=8.95 AND `title`="The Lord price= AND of the Rings"在左侧替换价格和标题值后,上面的示例应转换为以下字符串8.95==8.95 && 'The Lord price= AND of the Rings'=="The Lord price= AND of the Rings"我已经创建了一个代码(jsfiddle)来实现这一点,但是如果我在值中添加 AND `,如下所示(如果条件不匹配,它将返回 false)var obj = {price: 8.95, title: "'The Lord price= AND `of the Rings'"};
var whereString = '`price`=8.95 AND `title`="The Lord price= AND `of the Rings"';所以我想了解有没有其他更好的方法来实现这一目标?
2 回答
繁华开满天机
TA贡献1816条经验 获得超4个赞
方法略有不同,对引用字符串的形式无动于衷;除引号AND外,替换并加入:
let source = '`price`=8.95 AND `title`="The Lord price= AND of the Rings"';
let result = source
.split(/\s*\bAND\b\s*(?![^`"]+")/)
.map(s => s.replace(/`\w+`=(.*)/, '$1==$1'))
.join(' && ');
console.log(result);
.as-console-wrapper { max-height: 100% !important; top: 0; }
添加回答
举报
0/150
提交
取消