我想colormanagemnet
从用户定义的特殊字符中更改字符串,如下所示:
c!o@l#o$r$m%a^n&a*g?e(m)e@n!t
使用 JavaScript 或 jQuery。
<script type="text/javascript">
var sc = "!@#$%^&*()?"
var txt = "colormanagemnet";
// dont know how to concat like this
</script>
我想colormanagemnet
从用户定义的特殊字符中更改字符串,如下所示:
c!o@l#o$r$m%a^n&a*g?e(m)e@n!t
使用 JavaScript 或 jQuery。
<script type="text/javascript">
var sc = "!@#$%^&*()?"
var txt = "colormanagemnet";
// dont know how to concat like this
</script>
首先,您可以拆分每个变量
sc.split("")
=> ["!", "@", "#", "$", "%", "^", "&", "*", "(", ")", "?"]
txt.split("")
=>["c", "o", "l", "o", "r", "m", "a", "n", "a", "g", "e", "m", "n", "e", "t"]
现在您可以运行 . 的每个字符txt
并与 . 的每个字符连接sc
。如果您有不同数量的元素,您可以执行以下操作:
for(...){
final = final + char_from_txt[i] + char_from_sc[i % sc_length];
}
如果需要,这个可以处理不均匀的长度和垫子
var sc = "!@#$%^&*()?"
var txt = "colormanagemnet";
var newstr ="";
最优雅的是将 charAt 与 Tiago 的余数方法一起使用:
for (var i=0,n=txt.length; i< n; i++) {
newstr += txt.charAt(i)+sc.charAt(i % sc.length);
}
这是一个带有填充的,测试最长的字符串:
for (var i=0,n=Math.max(txt.length,sc.length); i< n; i++) {
var char1 = txt.length>i?txt.charAt(i):"-"; // remove - if no padding
var char2 = sc.length>i?sc.charAt(i):"~"; // remove ~ if no padding
newstr += char1+char2;
}
alert(newstr);