我几天前写道,如果无法加载所需的图像,则可以回退到占位符图像。它允许用户使用2 占位符来定义图像大小:
;(window.jQuery || window.Zepto).fn.fallback = function (url) {
return this.one('error', function () {
this.src = (url|| 'http://lorempixel.com/$w/$h')
.replace('$w', this.width).replace('$h', this.height);
});
};
我现在问我,是否可以用更短但相等的.replace('$w', this.width).replace('$h', this.height);
替换regex
来用指定的值替换所有$*
(美元+第一个字符)从任何对象?
这样的事情:
'$f is not equal to $b'.replace(/magicregex/, {
foo: 'foo',
bar: 'bar'
});
这样我们就可以使用properties
中的所有image-object
,例如image.width
,image.src
,image.width
...
答案 0 :(得分:1)
仅当您使用某个功能作为替换时。像:
"$w/$h".replace(/\$[wh]/g, function(m){ return m == "$w" ? width : height; });
您也可以像这样取消比较:
"$w/$h".replace(/\$(?:(w)|h)/g, function(m, w){ return w ? width : height; });
如果要在散列中查找值,可以使用:
"$w/$h".replace(/\$(\w+)/g, function(m, name){ return hash[name]; });