0

)我已经搜索了高低,但我找不到我需要的东西。或者我愚蠢地把它做对了;-)

我需要一个带有多个输入框的页面,我可以在其中输入一些文本,然后在每个输入下方有一个输出区域,显示转换为一些预定义数字的文本。

例子:

输入:abcde fghi æøå(我需要各种字符,如 .,/: 等)

输出:064 065 066 067 068 032

所以它需要像这样转换:

“一”=“064”

"b"="065"

“空间”=“032”

(是的,输出中的每个数字都需要分开,或者在每个数字后添加一个空格)

我在 php 和 javascript 中尝试了一些不同的密码指南,但无法让它工作。我确实做了一个 Excel 文档,它可以做一些事情,但是它可以转换的字符数量有限,然后它开始表现得很奇怪。所以我想也许 PHP 就是答案!

非常感谢任何帮助/Rasmus

4

1 回答 1

1

本着 elclanrs 删除答案的精神,并为后代:

<script>

// Using standard for loop
function stringToCharcodes(s) {
    var result = [];

    function pad(n){ return (n<10? '00' : n<100? '0' : 0) + n;}

    for (var i=0, iLen=s.length; i<iLen; i++) {
        result.push(pad(s.charCodeAt(i)));
    }
    return result.join(' ');
}

// Using ES5 forEach
function stringToCharcodes2(s) {
    var result = [];

    function pad(n){ return (n<10? '00' : n<100? '0' : 0) + n;}

    s.split('').forEach(function(a){result.push(pad(a.charCodeAt(0)))});

    return result.join(' ');
}
</script>

<input onkeyup="document.getElementById('s0').innerHTML = stringToCharcodes(this.value);"><br>
<span id="s0"></span>

编辑

如果您想要自定义映射,请使用对象(我只包含了 2 个字符,您可以添加任意数量的字符):

var mapChars = (function() {
  var mapping = {'198':'019', '230':'018'};

  return function (s) {
    var c, result = [];

    for (var i=0, iLen=s.length; i<iLen; i++) {
      c = s.charCodeAt(i);
      result.push(c in mapping? mapping[c] : c);
    }

    return result.join(' ');
  }
}());

alert(mapChars('Ææ')); // 

使用字符编码进行映射似乎是一个合理的解决方案,使用实际字符可能会受到不同的页面字符编码。

于 2013-05-21T23:09:06.803 回答