如果您尝试此链接https://jsfiddle.net/u4bxz74c/10/。稍后结果将是这样的
PART 1
<p id="posttextareadisplay">
<p class="ENGLISH">This is a samplasde textssss</p>
<p class="ENGLISH"><b>فَإِذَا جَلَسْتَ فِي وَسَطِ الصلَاةِ فَاطْمَئِن، وَافْتَرِشْ فَخِذَكَ الْيُسْرَى ثُم تَشَهدْ</b></p>
</p>
PART 2
<p id="posttextareadisplay">
<p class="ENGLISH">This is a samplasde textssss <b>فَإِذَا جَلَسْتَ فِي وَسَطِ الصلَاةِ فَاطْمَئِن، وَافْتَرِشْ فَخِذَكَ الْيُسْرَى ثُم تَشَهدْ</b></p>
</p>
问题第1部分:如果您看到以下代码,则所有paragraphs
或<p>
均为class="ENGLISH"
。
如果段落中的内容是阿拉伯语,如何将其变为paragraph
或<p>
class="ENGLISH"
为class="ARAB"
?但如果写作不是阿拉伯语,那么class="ENGLISH"
PART 1
<p id="posttextareadisplay">
<p class="ENGLISH">This is a samplasde textssss</p>
<p class="ENGLISH"><b>فَإِذَا جَلَسْتَ فِي وَسَطِ الصلَاةِ فَاطْمَئِن، وَافْتَرِشْ فَخِذَكَ الْيُسْرَى ثُم تَشَهدْ</b></p>
</p>
***** I WANT TO BE LIKE THIS *******
<p id="posttextareadisplay">
<p class="ENGLISH">This is a samplasde textssss</p>
<p class="ARAB"><b>فَإِذَا جَلَسْتَ فِي وَسَطِ الصلَاةِ فَاطْمَئِن، وَافْتَرِشْ فَخِذَكَ الْيُسْرَى ثُم تَشَهدْ</b></p>
</p>
问题第2部分:但是如果阿拉伯语加入普通文字或普通字体。因此段落或<p>
仍为class="ENGLISH"
喜欢这个
<p class="ENGLISH"> This is a sa <b> لْيُسْرَى ثُم تَشَهدْ</b></p>
<p class="ENGLISH"><b> لْيُسْرَى ثُم تَشَهدْ</b> This is a sa</p>
<p class="ENGLISH"> This is a sa <b> ا لْيُسْرَى ثُم تَشَهدْ</b> This is a sa</p>
<p class="ENGLISH"><b> لْيُسْرَى ثُم تَشَهدْ</b> This is a sa <b> لْيُسْرَى ثُم تَشَهدْ</b></p>
注意:我已尝试过此代码,但似乎这段代码封装了textarea的全部内容
if (pattern.test(newText)) {
str = newText.replace($format_search[i], $arab_format_replace[i]);
} else {
str = newText.replace($format_search[i], $format_replace[i]);
}
答案 0 :(得分:0)
您可以使用RegExp
构造函数从字符串"abcdefghijklmnopqrstuvwxyz "
创建RegExp()
模式,并使用不区分大小写的标记i
;使用循环迭代元素;如果元素的.textContent
以转换为RegExp
的字符串中的一个字符开头,或者元素.textContent
的每个字符都是RegExp
中的一个字符,则设置元素{{1 {}为} .className
,否则将元素"ENGLISH"
设置为.className
。
请注意"ARAB"
中id
元素的document
应该是唯一的。此外,<p>
不是<p>
元素的有效子元素。
替换class="posttextareadisplay"
用于id="posttextareadisplay"
父级<p>
元素和<span>
用于子级<p>
元素。
const en = "abcdefghijklmnopqrstuvwxyz ";
for (let el of document.querySelectorAll(".ENGLISH")) {
if (new RegExp(`^[${en.slice(0, en.length -1)}]`, "i").test(el.textContent)
|| [...el.textContent].every(char =>
new RegExp(`${char}`, "i").test(en))) {
el.className = "ENGLISH"
} else {
el.className = "ARAB"
}
}
PART 1
<p class="posttextareadisplay">
<span class="ENGLISH">This is a samplasde textssss</span>
<span class="ENGLISH"><b>فَإِذَا جَلَسْتَ فِي وَسَطِ الصلَاةِ فَاطْمَئِن، وَافْتَرِشْ فَخِذَكَ الْيُسْرَى ثُم تَشَهدْ</b></span>
</p>
PART 2
<p class="posttextareadisplay">
<span class="ENGLISH">This is a samplasde textssss <b>فَإِذَا جَلَسْتَ فِي وَسَطِ الصلَاةِ فَاطْمَئِن، وَافْتَرِشْ فَخِذَكَ الْيُسْرَى ثُم تَشَهدْ</b></span>
</p>