Вы можете получить indexOf
последнего символа, например: ]
из pslic
, а затем мы будем использовать его, чтобы добавить тег <span>
в начало строки после [
и добавить закрывающий </span>
перед конец ]
, затем примените требуемый цвет к тексту, используя css.
Код демонстрации :
$(function() {
$("#inp").on("input", function() {
var inpt = $(this).val();
$("#dis").html(inpt);
var det1 = inpt.indexOf("[");
var det2 = inpt.indexOf("]");
var rpl = inpt.slice(det1, parseInt(det2) + parseInt(1));
var ptxt = $("#dis").text();
if (det1 != -1 && det2 != -1) {
var lgnt = ptxt.length;
var pslic = ptxt.slice(det1, parseInt(det2) + parseInt(1));
//getting lst index of lst elemnt
var end = pslic.indexOf("]");
//leaving first char i.e : "[" ->add <span> "text" </span>-> "]"
var new_datas = pslic.substring(0, 1) + "<span>" + pslic.substring(1, end) + "</span>" + pslic.substring(end, pslic.length);
ptxt.replace(ptxt.slice(0, det1) + pslic + ptxt.slice(parseInt(det2) + parseInt(1), lgnt));
//adding new_dats to div
$("div").html(">>> " + new_datas + "<<< <br> replacement executed successfully, check if color of " + new_datas + " inside the white line is modified?");
}
});
});
span {
color: skyblue;
}
body {
background: rgba(20, 30, 20, 0.99);
}
div {
color: orange;
}
<!DOCTYPE html>
<html>
<head>
<title>Page Title</title>
<script src="https://code.jquery.com/jquery-3.1.1.js"></script>
</head>
<body>
<input type="text" style="height:100px; width:250px; overflow:auto;" id="inp" placeholder="for example type: this is [great] book john" />
<p style="color:white;" id="dis"></p>
<div></div>
</body>
</html>