[英]how to check if a string contains substring and color it in javascript?
我必須創建:
<input type="text">
<textarea>
<div>
<button>
我必須用textarea
的內容填充div
,但是如果內容包含input
的字符串,則必須用<span>
為其着色。
例如:
如果input
包含“ is” ,並且textarea
包含“ this is a beautiful day” , 則每次將“ is”字符串出現時,都應將以下文本放在div
“ this is a beautiful day”和顏色中。
我應該使用indexOf()
和一個循環。
我有這個:
var a = $("#inp1").val();
var b = $("#txt").val();
var x = b.indexOf(a);
if (x > -1)
如果您絕對必須使用indexOf
while(b.indexOf(a) != -1) {
b = b.replace(a, '[X]');
}
while(b.indexOf('[X]') != -1) {
b = b.replace('[X]', '<span style="color:yellow;">' + a + '</span>');
}
$("#targetDiv").html(b);
您也可以使用RegExp進行此操作
var a = $("#inp1").val();
var b = $("#txt").val();
var re = new RegExp(a, 'g');
var divContent = b.replace(re, '<span style="color:yellow;">' + a + '</span>');
$("#targetDiv").html(divContent);
這是indexOf的小提琴
這是查找和更改所有搜索單詞顏色的代碼
$(document).ready(function () { $("#here").on("keydown keyup", function () { var mytext = $(this).val(); var find = $("#find").val(); mytext=mytext.replace(new RegExp(find,"g"), "<span class='me'>"+find+"</span>"); $("#output").html(mytext); }); })
.me{color: #00f; background-color: #EFFF00; }
<script src="https://ajax.googleapis.com/ajax/libs/jquery/1.11.1/jquery.min.js"></script> <input id="find" type="text" /><br/> <textarea id="here"></textarea><br/> <div id="output"></div>
使用JavaScript substring
字符串可在textarea內拆分字符串,並使用突出顯示的文本形成一個paragraph
。
HTML代碼:
<input id="inp1" type="text"/><br>
<textarea id="txt" col="10" row="5"></textarea><br>
<div id="fillarea">
click on check
</div>
<button id="check">check</button>
突出顯示的CSS:
.highlight{
background-color:yellow;
}
jQuery代碼:
$('#check').on('click',function(){
var a = $("#inp1").val();
var b = $("#txt").val();
var x = b.indexOf(a);
var first = b.substring(0,x);
var middle = b.substring(x,x+a.length);
var last = b.substring(x+a.length,b.length);
var to_print = '<p>' + first + '<span class="highlight">' + middle + '</span> ' + last + '</p>';
$('#fillarea').empty();
$('#fillarea').append(to_print);
});
演示在這里擺弄
它可以幫助你的jsfiddle
$('.submit').click(function(){
var content = $('.textarea').val();
var ans = content.replace($('.input').val(), "<span style='color:red;'>"+$('.input').val()+"</span>");
$('.text').html(ans);
});
var input = $("#inp1").val();
var text = $("#txt").val();
var div = $("#div");
div.val(text.replace(new RegExp(input,'g'), makeSpan(input)));
function makeSpan(str) {
return '<span style="background-color:red">' + str + '</span>';
}
試試這個
<html> <title></title> <head> <script src="https://ajax.googleapis.com/ajax/libs/jquery/1.11.0/jquery.min.js"></script> <script> $(document).ready(function() { var a = "is"; var b = "this is beautiful"; var x = b.indexOf(a); if (x > -1) { var re = new RegExp(a, 'g'); res = b.replace(re, "<span style='color:red'>"+a+"</span>" ); $("#result").html(res); } }) </script> </head> <body> <div id="result"></div> </body>
您可以使用IndexOf Javascript函數
var str1 = "ABCDEFGHIJK";
var str2 = "DEFG";
if(str1.indexOf(str2) != -1){
alert(str2 + " found");
}
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.