js 替换,将 select * from d where id={{a}} and id={{x}} 种的 {{a}} 和 {{x}} 替换成 1 和 2,应该怎么操作?

2023-03-22 0 1,192

问题描述

js 替换,将 select * from ddd where id={{aaa}} and id={{xxxx}} 种的 {{aaa}} 和 {{xxx}} 替换成 111 和 222,其中aaa和xxx以及111和222都是用户输入的不确定,where 前面的 也是用户输入的 应该怎么操作?
根据数组下标的值如下:
[‘yrtyrt’, ‘fdgfdfdgfd’]
替换如下字符串里的内容:
‘select * from sss
where id={{aaa}}
and id={{xxxx}}

期望结果:
‘select * from sss where id=yrtyrt and id=fdgfdfdgfd’

相关代码

你期待的结果是什么?实际看到的错误信息又是什么?

js 替换,将 select * from d where id={{a}} and id={{x}} 种的 {{a}} 和 {{x}} 替换成 1 和 2,应该怎么操作?

回答:

function format(pattern, paramObj) {
    const regex = /\{\{(.*?)\}\}/g;
    const segments = [];
    let index = 0;
    for (const m of pattern.matchAll(regex)) {
        segments.push(pattern.slice(index, m.index));
        segments.push(paramObj[m[1]] ?? "");
        index += m.index + m[0].length;
    }
    return segments.join("");
}

const aaa = "hello";
const xxxx = "hi";
const r = format("select * from ddd where id={{aaa}} and id={{xxxx}}", { aaa, xxxx });
console.log(r);

虽然可以写出来,但是

  1. 这个 SQL 有可能是错的,因为 id= 后面理论上来说应该是个数,或者带单引号的字符串。如果是用户输入,又没处理成数的话,比如 id=abc,那就是 SQL 语法错误。
  2. 前端拼 SQL 是很奇怪的,除非你写 SQL 工具
  3. 如果是 SQL 工具,那就不是简单的插值,还需要处理分析值的类型,进行转换来进行不同的插值处理。
收藏 (0) 打赏

感谢您的支持,我会继续努力的!

打开微信/支付宝扫一扫,即可进行扫码打赏哦,分享从这里开始,精彩与您同在
点赞 (0)

1. JK下载官网所有资源来源于开发团队,加入会员即可下载使用!如有问题请联系右下角在线客服!
2. JK下载官方保障所有软件都通过人工亲测,为每位会员用户提供安全可靠的应用软件、游戏资源下载及程序开发服务。
3. JK开发团队针对会员诉求,历经多年拥有现今开发成果, 每款应用程序上线前都经过人工测试无误后提供安装使用,只为会员提供安全原创的应用。
4. PC/移动端应用下载后如遇安装使用问题请联系右下角在线客服或提交工单,一对一指导解决疑难。

JK软件下载官网 技术分享 js 替换,将 select * from d where id={{a}} and id={{x}} 种的 {{a}} 和 {{x}} 替换成 1 和 2,应该怎么操作? https://www.jkxiazai.com/839.html

JK软件应用商店是经过官方安全认证,保障正版软件平台

相关资源

官方客服团队

为您解决烦忧 - 24小时在线 专业服务