1

数値をより大きな数値に置き換えるJavaScript関数を作成しようとしましたが、機能しません。

私は運が悪かったので多くのことを試みました。

<script type="text/javascript">
function change(text) {
 var array = {"1":"6", "2":"7", "3":"8", "4":"9", "5":"0", "6":"1", "7":"2", "8":"3", "9":"4", "0":"5",}

 for (var val in array)
    text = text.replace(new RegExp(val, "g"), array[val]);

 return text;
}

document.write(change('123456789'));
</script>

これは戻ります123401234が、戻るはずです6789012345

私もこれを試しました:

function change_new(text) { text = text.replace(/1/g, "6").replace(/2/g, "7").replace(/3/g, "8").replace(/4/g, "9").replace(/5/g, "0").replace(/6/g, "1").replace(/7/g, "2").replace(/8/g, "3").replace(/9/g, "4").replace(/0/g, "5"); return text; }

同じ結果になります。

私は何が間違っているのですか?

4

1 に答える 1

5

複数の置換呼び出しを使用することはできません。そうしないと、すでに置換した番号を置換します。代わりに、replacewith関数を置換として使用してください。

var numbers = {"1": "6", "2": "7", ...};
text = text.replace(/\d/g, function(match) {
    return numbers[match[0]]; // [0] is the entire matched text, which is one digit
});
于 2012-12-30T20:17:11.017 に答える