在生产环境中使用‘$1-$9’安全吗?在MDN上,它会给出关于此https://developer.mozilla.org/en-US/docs/Web/JavaScript/Reference/Global_Objects/RegExp/n的警告
两者之间有区别吗?
str.replace(/[a-z]/g, $1, $2)或
regex.$1
regex.$2发布于 2017-10-21 06:36:05
这是完全无效的:
str.replace(/[a-z]/g, $1, $2)String.prototype.replace()只有两个参数:正则表达式和替换。不能有两个替换字符串。
$1、$2等通常只在替换字符串中使用,例如
str.replace(/([a-z])-(\d)/g, "$1 $2")如果你想在替换字符串之外使用$1,$2,它们不是全局变量,它们是用于进行匹配的RegExp对象的属性。
var re = /([a-z])-(\d)/;
re.exec(str);
console.log(re.$1, re.$2);但几乎没有理由这样做。re.exec返回一个包含捕获组的数组,因此您可以执行以下操作:
match = re.exec(str);
console.log(match[1], match[2]);这是符合标准的访问捕获组的方式,因此没有充分的理由使用非标准属性。
https://stackoverflow.com/questions/46858113
复制相似问题