我想从用户定义的特殊字符更改字符串colormanagemnet
,如下所示:
C 0 @升#ö$ R $ M%一^ N&安培;!?!一个* G E(M)Ê@ N t个
使用JavaScript或jQuery。
<script type="text/javascript">
var sc = "!@#$%^&*()?"
var txt = "colormanagemnet";
// dont know how to concat like this
</script>
答案 0 :(得分:1)
首先,您可以拆分每个变量
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];
}
答案 1 :(得分:0)
如果需要,这个可以处理不均匀的长度和垫片
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);