У меня есть function
, который проверяет, содержит ли текстовая область строку :tag:
во время набора. Если да, то он заменяет его на [tag] [/tag]
. Например, если мы введем :b:
, он вставит [b] [/b]
.
Это хорошо работает, но я хочу, чтобы это работало, даже если мы будем использовать верхний регистр. Как и при наборе :B:
, можно также вставить [b] [/b]
(или [B] [/B]
, на самом деле не имеет значения), но, как бы я ни пытался, это просто не работает.
Естественно, ему нужно работать с каждый тег .
$("textarea").on("input",function(e){
let textarea=$(this);
let text = textarea.val();
let target=e.target;
let position=target.selectionStart;
let tags=["B","I","U","S","Q",
"H1","H2","H3","H4","H5","H6",
"LEFT","CENTER","RIGHT","SUB","SUP",
"H","HR","CODE","SPOILER","UL","OL","LI"];
$.each(tags, function(index, tag) {
tag=tag.toLowerCase();
let fullTag=":"+tag+":";
if(textarea.val().toLowerCase().indexOf(fullTag) > -1 ){
textarea.val(text.replace(fullTag, "["+tag+"] [/"+tag+"]"));
target.selectionEnd=position+2;
}
});
});
textarea{
width:200px;
height:100px;
}
<script src="https://cdnjs.cloudflare.com/ajax/libs/jquery/3.3.1/jquery.min.js"></script>
<textarea></textarea>
Мне кажется, что ответ на самом деле прост, и я много искал, пробовал много вариантов, но все еще не могу понять , Поэтому я буду признателен, если вы поможете мне с этим.