例如...(此操作失败)
const currencyMap = {
"$": "USD",
"€": "EUR",
};
const r = '$100'.replace(/(\$)([0-9]*)/g, `${currencyMap[$1]}$2`);
console.log(r);
有没有办法使这种事情起作用?
$1
用于字符串但不用作键时可用。
答案 0 :(得分:3)
不幸的是,没有,您必须使用替换功能:
NVL(SOME_USER_ID, '***NULL SENTINEL VALUE***')
还请注意,您可以使用const currencyMap = {
"$": "USD",
"€": "EUR",
};
const r = '$100'.replace(/(\$)(\d*)/g, (_, $1, $2) => currencyMap[$1] + $2);
console.log(r);
代替\d
,这使正则表达式更易于阅读。
如果您真的不需要第二组一些特殊的东西,您可以在对象中回显匹配项:
[0-9]
答案 1 :(得分:2)
好了,我知道了。 Replace可以将一个函数用作第二个arg来生成替换字符串。
const currencyMap = {
"$": "USD",
"€": "EUR",
};
const r = '$100'.replace(/(\$)([0-9]*)/g, (full, first, second) => {
return `${currencyMap[first]} ${second}`;
});
console.log(r);