文字列とUTF16と16進数について調べているときに作った相互変換機能です
いずれかの入力欄に変換したい値を入れると他の2つの値が自動で表示されます
例:
文字列に「a」と入力するか
UTF16に「97」と入力するか
16進数に「61」と入力すると以下のように他の2つの値が自動で埋まる
サロゲートペア対応版はこちら
HTML Serviceで作ってみる
コード.gs
function doGet() {
return HtmlService.createHtmlOutputFromFile("index");
}
|
意訳この機能がやること 指定したHTMLファイルを表示する |
index.html
<!DOCTYPE html>
<html>
<body>
<table>
<tbody>
<tr>
<td>
<label>文字列</label>
</td>
<td>
<input type="text" id="str">
</td>
</tr>
<tr>
<td>
<label>UTF16</label>
</td>
<td>
<input type="text" id="utf16">
</td>
</tr>
<tr>
<td>
<label>16進数</label>
</td>
<td>
<input type="text" id="hexadecimal">
</td>
</tr>
</tbody>
</table>
<script>
var str = document.getElementById("str");
var utf16 = document.getElementById("utf16");
var hexadecimal = document.getElementById("hexadecimal");
str.onkeyup = keyup;
utf16.onkeyup = keyup;
hexadecimal.onkeyup = keyup;
function keyup() {
switch (this.id) {
case "str":
get_utf16();
get_hexadecimal();
break;
case "utf16":
get_hexadecimal();
get_str();
break;
case "hexadecimal":
get_str();
get_utf16();
break;
}
}
function get_str() {
str.value = String.fromCharCode("0x" + hexadecimal.value);
}
function get_utf16() {
utf16.value = str.value.charCodeAt();
}
function get_hexadecimal() {
hexadecimal.value = parseInt(utf16.value).toString(16);
}
</script>
</body>
</html>
|
意訳これはHTML5文書です 文字列のラベル そのテキストボックス UTF16のラベル そのテキストボックス 16進数のラベル そのテキストボックス idがstrの要素を取得する idがutf16の要素を取得する idがhexadecimalの要素を取得する idがstrの要素でキーが上がったらkeyupを実行する idがutf16の要素でキーが上がったらkeyupを実行する idがhexadecimalの要素でキーが上がったらkeyupを実行する この機能がやること idによって処理を分ける idがstrなら get_utf16()と get_hexadecimal()を実行する idがutf16なら get_hexadecimal()と get_str()を実行する idがhexadecimalなら get_str()と get_utf16()を実行する この機能がやること strの値はhexadecimalの頭に0xを付けて文字列にした値を入れる この機能がやること utf16の値はstrの値をUTF16にした値を入れる この機能がやること hexadecimalの値はutf16の値を16進数にした値を入れる |
参考
String.fromCharCode()
https://developer.mozilla.org/ja/docs/Web/JavaScript/Reference/Global_Objects/String/fromCharCode
Number.prototype.toString()
https://developer.mozilla.org/ja/docs/Web/JavaScript/Reference/Global_Objects/Number/toString
String.prototype.charCodeAt()
https://developer.mozilla.org/ja/docs/Web/JavaScript/Reference/Global_Objects/String/charCodeAt
parseInt()
https://developer.mozilla.org/ja/docs/Web/JavaScript/Reference/Global_Objects/parseInt
String.fromCharCode()
https://developer.mozilla.org/ja/docs/Web/JavaScript/Reference/Global_Objects/String/fromCharCode
Number.prototype.toString()
https://developer.mozilla.org/ja/docs/Web/JavaScript/Reference/Global_Objects/Number/toString
String.prototype.charCodeAt()
https://developer.mozilla.org/ja/docs/Web/JavaScript/Reference/Global_Objects/String/charCodeAt
parseInt()
https://developer.mozilla.org/ja/docs/Web/JavaScript/Reference/Global_Objects/parseInt
