用1和10替换多个字符串
String replace multiple strings trouble with 1 and 10
我试图在字符串中替换多个单词/字符串,并在这里测试了所有建议的解决方案如何在JavaScript中替换字符串的所有出现?
他们都在工作,直到我不得不同时更换color_1
和color_10
。现在,color_10的替换是color_1的一部分,最后为0。
string = 'padding:0px 0px 0px 0px;margin:0px auto 0px auto;background-color:color_9;color_1;color_5;color_4;color_10;';
var palettes = {
"theme": "{'"color_1'":'"#454545'",'"color_2'":'"#40b1e2'",'"color_3'":'"#efefef'",'"color_4'":'"#fafafa'",'"color_5'":'"#cccccc'",'"color_6'":'"#e91e63'",'"color_7'":'"#e91e63'",'"color_8'":'"#e74c3c'",'"color_9'":'"#2c3e50'",'"color_10'":'"#344957'"}"
}
function PaletteColor(css) {
if (css.indexOf('color_') !== -1) {
var $palette = JSON.parse(palettes.theme);
$.each($palette, function(name, color) {
// css = css.replace(new RegExp(name, 'g'), color);
css = css.split(name).join(color);
});
}
return css;
}
$('#result').html(PaletteColor(string));
<script src="https://ajax.googleapis.com/ajax/libs/jquery/1.9.0/jquery.min.js"></script>
<div id="result">...</div>
我错过了什么?
更新:测试json反转,color_10第一color_1最后,
它可以工作https://jsfiddle.net/fqqLdxkz/2/
但是这没有意义,因为它看起来是先替换索引而不是值。
您可以在正则表达式中放置一个词边界断言'b
,这样color_1'b
就不会匹配color_10
。
var string = 'padding:0px 0px 0px 0px;margin:0px auto 0px auto;background-color:color_9;color_1;color_5;color_4;color_10;';
var palettes = {
theme: {"color_1":"#454545","color_2":"#40b1e2","color_3":"#efefef","color_4":"#fafafa","color_5":"#cccccc","color_6":"#e91e63","color_7":"#e91e63","color_8":"#e74c3c","color_9":"#2c3e50","color_10":"#344957"}
}
function paletteColor(css) {
if (css.indexOf('color_') !== -1) {
var $palette = palettes.theme;
$.each($palette, function(name, color) {
css = css.replace(new RegExp('''b' + name + '''b', 'g'), color);
});
}
return css;
}
$('#result').html(paletteColor(string));
<script src="https://ajax.googleapis.com/ajax/libs/jquery/1.9.0/jquery.min.js"></script>
<div id="result">...</div>
相关文章:
- 字符串替换-不支持格式字符'}'
- Unicode字符串替换不适用于完整的变音符号阿拉伯文本
- Javascript 将字符串替换为
返回为空 - 字符串替换只替换第一个匹配项,可以'不要让它全球化
- javascript字符串替换$1(如果它是某个值)
- 字符串替换正则表达式,开头为空格
- 将 url 中的一个字符串替换为另一个字符串
- 在HTML文本框中查找某些子字符串,然后用其他字符串替换它们
- 我想使用replace函数扫描json对象,然后用字符串替换匹配的单词
- 字符串替换为从右向左的语言(阿拉伯语)
- 将字符串替换为用户键入的文本
- 字符串替换javascript
- JavaScript 将多行字符串替换为多行字符串
- Javascript字符串替换不起作用
- 字符串替换不'当通过android webView JavascriptInterface传递字符串时无法工作
- 我正在尝试用另一个字符串替换一个字符串
- 字符串替换最后一个字符出现的斜杠
- 将具有的字符串替换为$
- 基于查询字符串替换HTML
- Javascript字符串替换在满足长度而不是instantanoeus之前不会生效