这是我第一次发帖提问。我对编程很新,而且对javascript很新。我已经搜索了线程以解决我的问题,但我仍然无法弄明白。我有一个受另一个文本(text1)影响很大的文本(text2)。我在text1中有一个所有单词的数组,我想循环遍历该数组,如果单词在两个文本中,我想以不同的颜色在我的网页上显示它。
这就是我所拥有的:
var text1 = ["جهيم"، "سجين"، "الكتاب"];
var text2 = ["الله قد انزل الكتاب فيه تبيان كل شئ رحمة وبشرى على الحق بالحق على العالمين جميعا"]
for (i = 0; i < text1.length; i++) {
if (i in text2) {
document.write("<span class="color">"+ text2[i]+"</span>");
}
}
非常感谢任何帮助。
答案 0 :(得分:1)
试试这个,
for (i = 0; i < text1.length; i++) {
if (text2.indexOf(text1[i]) > -1) {
document.write("<span class="color">"+ text1[i]+"</span>");
}
}
答案 1 :(得分:0)
您可以使用Array.indexOf
检查text2[j]
是否包含text1[i]
,此处请注意您有两个不同的索引,因为您有两个不同的数组
var text1 = ["جهيم", "سجين", "الكتاب"];
var text2 = ["الله قد انزل الكتاب فيه تبيان كل شئ رحمة وبشرى على الحق بالحق على العالمين جميعا"];
for (var i = 0; i < text1.length; i++) {
for (var j = 0; j < text2.length; j++) {
if (text2[j].indexOf(text1[i]) > -1) {
document.write("<span class='color'>"+ text2[j]+"</span>");
}
}
}
请参阅jsbin
答案 2 :(得分:0)
使用jquery $ inArray:
for (i=0; i< text1.length; i++){
if($.inArray(text1[i], text2)!=-1){
document.write("<span class="color">"+ text1[i]+"</span>");
}
}
答案 3 :(得分:0)
您可以使用 split() 和 replace() 方法执行此操作,而不需要为{{1}中的字词使用任何数组},text1
和text1
应为字符串:
text2
在var text1 = "جهيم سجين الكتاب";
var text2 = "الله قد انزل الكتاب فيه تبيان كل شئ رحمة وبشرى على الحق بالحق على العالمين جميعا";
for (var word in text2.split(" ")){
if(text1.includes(word)){
text2.replace(word, "<span class=\"color\">"+word+"</span>");
}
}
中,您会在text2
和text1
中找到单词。
修改强>
如果您想将text2
用作数组:
text1
因为在Javascript中字符串和数组都有var text1 = ["جهيم"، "سجين"، "الكتاب"];
for (var word in text2.split(" ")){
if(text1.includes(word)){
text2.replace(word, "<span class=\"color\">"+word+"</span>");
}
}
方法。