基本上我想要完成的是阿拉伯字符滥用荧光笔!
为了便于理解,我将尝试用英语解释类似的功能。
想象一个大小写错误的字符串,并且需要正确重写它,因此用户在输入框中重写字符串并提交,js检查是否有任何字符未更正,然后显示带有这些字母的整个字符串更正并以红色突出显示;
即[测试]变成[测试]
为此,我正在检查那些字符,如果检测到有缺陷的字符,它会被 span 包围,以红色显示。
到目前为止一切顺利,现在当我尝试将其复制为阿拉伯语时,错误的字符会与单词分离,使其无法阅读。
演示: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>
请注意,在测试阿拉伯语单词时,spanned char [first preview] 与单词的其余部分是分开的,而 non-spanned char [second preview] 正常显示。