基本的に私が達成しようとしているのは、アラビア語の文字が蛍光ペンを誤用することです!
理解しやすいように、同様の機能を英語で説明します。
大文字と小文字が間違っている文字列を想像してください。正しく書き直す必要があるため、ユーザーは入力ボックスで文字列を書き直して送信します。js は、修正されていない文字があるかどうかを確認し、それらの文字で文字列全体を表示します。修正され、赤で強調表示されました。
すなわち [テスト] は[テスト]になります
そうするために、私はそれらの文字をチェックしていました. 不良文字が検出された場合は、スパンで囲まれて赤く着色されます.
これまでのところ、これをアラビア語で複製しようとすると、欠陥のある文字が単語から分離されて読めなくなります。
デモ:jsfiddle
function check1() {
englishanswer.innerHTML = englishWord.value.replace(/t/, '<span style="color:red">T</span>');
}
function check2() {
arabicanswer.innerHTML =
arabicWord.value.replace(/\u0647/, '<span style="color:red">' +
unescape("%u0629") + '</span>') +
'<br>' + arabicWord.value.replace(/\u0647/, unescape('%u0629'));
}
fieldset {
border: 2px groove threedface;
border-image: initial;
width: 75%;
}
input {
padding: 5px;
margin: 5px;
font-size: 1.25em;
}
p {
padding: 5px;
font-size: 2em;
}
<fieldset>
<legend>English:</legend>
<input id='englishWord' value='test' />
<input type='submit' value='Check' onclick='check1()' />
<p id='englishanswer'></p>
</fieldset>
<fieldset style="direction:rtl">
<legend>عربي</legend>
<input id='arabicWord' value='بطله' />
<input type='submit' value='Check' onclick='check2()' />
<p id='arabicanswer'></p>
</fieldset>
アラビア語の単語をテストすると、スパンされた文字 [最初のプレビュー] が単語の残りの部分から分離され、非スパンの文字 [2 番目のプレビュー] が正常に表示されることに注意してください。