如何用值替换“ $ id”?

时间:2018-07-15 00:54:12

标签: javascript regex string

如何用值替换“ $ 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}`);

我的尝试失败了,因为$是一个正则表达式。

1 个答案:

答案 0 :(得分:0)

就像@CertainPerformance所说的那样,您需要使用反斜杠在正则表达式中转义$。您还应该使用\b来匹配单词边界,以使以id开头的其他单词不匹配。换句话说,您应该这样做:

const myFind = "\\$id\\b";

或:

const myFind = /\$id\b/;

请注意,如果您选择使用双引号将正则表达式括起来,则将需要使用双反斜杠来表示一个反斜杠,以便当作为正则表达式求值时可以正确地转义反斜杠后面的内容。< / p>