Javaスクリプトを使用して2バイト整数を1バイトに変換することは可能ですか?テキストボックスに入力するときに、2バイトの数値を1バイトに変換する必要があります.jQueryまたはjavascriptで使用できるメソッドはありますか?
質問する
3323 次
2 に答える
4
1 ( U+FF11 ) を 1 ( U+0031 )に変換する組み込みの方法はありません。正規表現を使用して、言及した文字に対して具体的に行うことができます。
var rex = /[\uFF10-\uFF19]/g;
var str = "1234";
console.log("Before: " + str);
str = str.replace(rex, function(ch) {
return String.fromCharCode(ch.charCodeAt(0) - 65248);
});
console.log("After: " + str);
于 2013-03-12T11:28:34.160 に答える
0
なんで変換できないの?65296 はあなたのマジック ナンバーです。表は決して変化しないので、上下に実行するだけで、この方法で数値を変換できます。
これにより、1 バイトが 2 バイトに変換され、元に戻ります。
例は Jquery を必要としますが、それほど簡単に書くことはできません。
<input type="text" id="one" value="1234567890"><br/>
<input type="text" id="two"><br/>
<input type="text" id="three">
<script>
symbolsToEntities=function(sText){
var sNewText = "";
var iLen = sText.length;
for (i=0; i<iLen; i++){
iCode = sText.charCodeAt(i);
sNewText += (iCode > 256? "&#" + iCode + ";": sText.charAt(i));
};
return sNewText;
};
ConvertNumber=function(num){
var O='';
for (var i = 0, len = num.length; i < len; i++){
O+='&#'+(parseInt(num[i])+65296)+';';
};
return O;
};
ConvertNumberagain=function(num){
var O='';
var res = num.split(';');
$.each(res, function( key, value ){
if (value.length!=0){
O+=parseInt(value.replace('&#',''))-65296;
};
});
return O;
};
var doublebyte=ConvertNumber($('#one').val());
doublebyte = $('<div>').html(doublebyte).text();
$('#two').val(doublebyte);
var singlebyte=symbolsToEntities($('#two').val());
singlebyte=ConvertNumberagain(singlebyte);
$('#three').val(singlebyte);
</script>
于 2014-04-25T08:41:04.370 に答える