JavaScript replace() 似乎只抓住了第一击
JavaScript replace() seems to only grab the first hit
本文关键字:replace JavaScript 更新时间:2023-09-26
http://jsfiddle.net/XwHA6/
我在给定字符串中有两次字符串 {{value}}。当我尝试替换((该值时,只有该值的第一个实例被替换,而不是第二个实例。上面的 JSFiddle 链接演示了这一点。这是"按设计工作"还是我做错了什么?有没有更好的选择?
var str = 'Spend $ {{value}} Get $ {{value}} Off';
var result = str.replace('{{value}}', '<a href="#" id="value" data-type="text" data-pk="1" data-name="Value" data-original-title="Amount" class="editable editable-click">value</a>');
这是
带有字符串参数的.replace()
的默认行为(出于某种原因(。提供一个带有全局标志的正则表达式,它将起作用:
str.replace(/{{value}}/g, ...);
另外,由于我无论如何都在写一个,这里有一个简单的 JavaScript 克隆 Python 的 str.format
:
String.prototype.format = function() {
if (!arguments.length) {
return this;
}
var mapping;
if (typeof arguments[0] === 'object') {
mapping = arguments[0];
} else {
mapping = arguments;
}
return this.replace(/'{(.*?)'}/g, function(match, name) {
return mapping[name];
});
};
您可以像这样使用它:
str.format({value: '<a href=...'});
或者像:
'{0}{1}{0}'.format(1, 2); // "121"
相关文章:
- 替换变量时,JavaScript字符串replace()不起作用
- Javascript 如何强制 string.replace 不将我的字符串解释为正则表达式
- 如何在javascript中使用string.replace.将匹配字符串开头的两个不同表达式替换为null
- How can I get and replace this in javascript ( jquery?
- Replace a "href" element with javascript
- 字符串中的javascript replace()
- 使用Javascript.replace中的变量
- JavaScript .replace HTML 标记不会替换
- 在正则表达式中,如果第一个圆括号没有't匹配,当在JavaScript中使用replace()与在Ruby中使用
- 使用replace方法替换innerHTML以及在Javascript中不起作用的正则表达式
- Javascript str_ replace use“;加“;以及“;减去“;正则表达式中的字符
- Javascript Regex Replace for url
- JavaScript String.replace()中的错误,替换字符串“”$'&”;
- 在javascript中使用regex和replace()替换数组元素
- Javascript : innerHTML.replace use URL
- 传递给JavaScript replace()函数的内容
- Javascript replace() with $1
- innerhtml.replace没有替换数组javascript中的所有单词
- 考虑到我在JavaScript中使用.replace.更改了特定单词中间的另一个字符,我如何在该单词之前添加字符
- Trouble with replace() and § JavaScript