-1

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>
4

2 に答える 2

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];
}
于 2012-05-11T12:07:19.063 に答える
0

これは不均一な長さと必要に応じてパッドを処理します

デモ

var sc = "!@#$%^&*()?"
var txt = "colormanagemnet";
var newstr ="";

最もエレガントなのは、Tiago の剰余メソッドで charAt を使用することです。

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);
于 2012-05-11T12:33:20.367 に答える