我不明白为什么,但是这段代码给了我一个JavaScript错误:
<script type="text/javascript">
String.prototype.format = function(values) {
var result = this;
for (var i = 0, len = values.length; i < len; i++) {
result = result.replace(new RegExp("{" + i + "}", "g"), values[i]);
}
return result;
};
alert("Hi {0}, I'm {1}. Are you, {0}?".format(["Chris", "swell"]));
</script>
抛出异常:无效量词
它出了什么问题?
答案 0 :(得分:2)
我相信你必须逃避{
和}
。
String.prototype.format = function(values) {
var result = this;
for (var i = 0, len = values.length; i < len; i++) {
result = result.replace(new RegExp("\\{" + i + "\\}", "g"), values[i]);
}
return result;
};
答案 1 :(得分:1)
{
和}
在正则表达式中具有特殊含义。它们用于指定精确的量词。
要按照字面意思对待它们,只需在它们前面放两个反斜杠:\\{
和\\}
。
正如我刚刚发现的那样,一个不起作用。它必须将其中一个视为正则表达式分隔符。