我想使用JavaScript从用户定义特殊字符更改字符串

时间:2012-05-11 12:00:05

标签: javascript jquery

我想从用户定义的特殊字符更改字符串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>

2 个答案:

答案 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)

如果需要,这个可以处理不均匀的长度和垫片

DEMO

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);