// 選択範囲を伏字化 // ----- 設定ここから ----- var preserveNewLine = true; // 改行を伏字化しないか(真:しない 偽:する) var fuseziHalf = "*"; // 半角文字を伏字に変換する時に使う文字(列) var fuseziFull = "○"; // 全角文字を伏字に変換する時に使う文字(列) // ----- 設定ここまで ----- // ASCII範囲外の半角文字 var halfChars = "。「」、・ヲァィゥェォャュョッーアイウエオカキクケコサシスセソタチツテトナニヌネノハヒフヘホマミムメモヤユヨラリルレロワン゙゚"; // 選択された文字列を取得する var text = GetSelectedString(0); var ret = ""; // 改行を伏字化するならば、改行は1文字で表す if (!preserveNewLine) text = text.replace(/\r\n/g, "\n"); // 選択範囲を伏字に変換する var len = text.length; for (var i = 0; i < len; i++) { var currentCharCode = text.charCodeAt(i); if (preserveNewLine && (currentCharCode == 0x0d || currentCharCode == 0x0a)) { // 改行 ret += text.charAt(i); } else if (0x00 <= currentCharCode && currentCharCode <= 0x7f) { // ASCII範囲の文字 ret += fuseziHalf; } else if (halfChars.indexOf(text.charAt(i)) >= 0) { // ASCII範囲外の半角文字 ret += fuseziHalf; } else { // 全角文字と推測 ret += fuseziFull; } } // 変換結果を反映する InsText(ret);