В основном то, что я пытаюсь выполнить, - арабские символы злоупотребляют маркером!
Чтобы было проще понять, я попытаюсь объяснить аналогичную функциональность, но для английского.
Представьте себе строку с неправильной заглавной буквой, и ее необходимо переписать правильно, поэтому пользователь перезаписывает строку в поле ввода и отправляет, js проверяет, не был ли исправлен какой-либо char, тогда он отображает целая строка с буквой, скорректированной и выделенной красным цветом;
то есть. [test] становится [ T est]
Чтобы сделать это, я проверял эти символы, и если был обнаружен дефект char, он окружен цветом, чтобы он был окрашен в красный цвет.
До сих пор так хорошо, теперь, когда я пытаюсь воспроизвести это для арабского языка, дефектный char получает отделенный от слова, делающий его нечитаемым.
Демо: 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>