javascript - HexDecode // 十六进制编码
问题描述
问题是我尝试通过 HexDecode 和 HexEncode 将一个数组转换为另一个数组。一切都运行良好,直到我尝试将两个字符(例如 005002bb [Latin T'])转换为一个字符(例如 a760 [Ꝡ])。转换器工作,但它保留 ' (撇号),我想消失。我需要将 T' 视为一个单位并在输出中保留一个单位
我想我尝试了我所知道的一切
<script>
String.prototype.hexDecode = function ()
{
var j;
var hexes = this.match( /.{1,4}/g ) || [];
var back = "";
var lexesLength=hexes.length;
for ( j = 0; j < lexesLength; j++ )
{
back += String.fromCharCode( parseInt( hexes[ j ], 16 ) );
}
return back;
}
String.prototype.hexEncode = function ()
{
var hex, i;
var result = [];
var length = this.length;
for ( i = 0; i < length; i++ )
{
hex = this.charCodeAt( i ).toString( 16 );
result.push( ( "000" + hex ).slice( -4 ) );
}
return result;
}
Array.prototype.romanceltic = function ()
{
var roman = ['005402bb', '0041'];
var celtic = ['a760', 'A762'];
var length = this.length;
var answer = '';
var char;
var index;
for (var i = 0; i < length; i++) {
char = this[ i ];
index = roman.indexOf( char );
answer += ( index != -1 ) ? celtic [ index ].hexDecode() : char.hexDecode();
}
return answer;
}
$(function()
{
$( "input" ).click( function ( e )
{
var answer;
var content = $("#input").val();
switch ( $( this ).attr( "id" ) )
{
case "romanceltic":
{
answer = content.hexEncode().romanceltic();
}
break;
}
$("#output" ).val(answer);
} )
} );
</script>
类似的东西
我没有错误消息。它有效,但输出不是我正在等待的。据我了解,代码不能将“005402bb”视为一个整体。我想说输入是 T' ,输出是Ꝡ。换句话说,输入由两个字符(T+' 或任何其他 +')组成,而我想要得到的输出应该是一个字符(Ꝡ 或任何其他)。我另外插入了完整的脚本和另一个字符 A -> Ꝣ [A762] 并且您可以看到代码正确转换它,但我不明白第一个示例会发生什么,为什么我不能将 T+' 转换为 Ꝡ ?
解决方案
我已经阅读了代码,得出的结论是你把事情复杂化了。这似乎是一个穷人的输入法编辑器的实现。只需使用该replace
方法。
var content = 'TʻA';
content = content.replace(/Tʻ/gu, 'Ꝡ');
content = content.replace(/A/gu, 'Ꝣ');
console.log(content);
// ꝠꝢ
推荐阅读
- java - Java & XML:使用 getNextSibling() 与 getChildNode() 的说明
- docker - docker-compose up airflow-init 挂起:容器之间没有网络连接
- html - 如何在角度模板中使用 localStorage?
- javascript - 如何用 PHP 函数数据替换 javascript 选择框?
- node.js - 如何使用node js从netsuite rest web services获取数据?
- git - 无法将提交推送到主分支:预接收挂钩拒绝错误
- laravel - VueJS Axios链请求动态数组vs静态数组报错
- javascript - 拼接到新的阵列行后,对接收阵列所做的更改会反映在它和源阵列中。为什么?
- mysql - 如何使用 Express/MySQL 构建复合对象列表?
- android - 我正在尝试将电容器 v3 插件注册到 Android,但没有任何效果