如何用值替换“ $ id”? 我需要用一个值替换sql字符串中的正则表达式。 我正在尝试使用RegExp。
const src = "SELECT * FROM users WHERE id=$id";
const myFind = "$id";
// $id is the property of the object. example { $id: 123,}
const find = new RegExp(myFind, 'g');
const repl = 123;
const _completeSQL = src.replace( find, repl);
console.log(`_completeSQL ${_completeSQL}`);
我的尝试失败了,因为$是一个正则表达式。
答案 0 :(得分:0)
就像@CertainPerformance所说的那样,您需要使用反斜杠在正则表达式中转义$
。您还应该使用\b
来匹配单词边界,以使以id
开头的其他单词不匹配。换句话说,您应该这样做:
const myFind = "\\$id\\b";
或:
const myFind = /\$id\b/;
请注意,如果您选择使用双引号将正则表达式括起来,则将需要使用双反斜杠来表示一个反斜杠,以便当作为正则表达式求值时可以正确地转义反斜杠后面的内容。< / p>