Сообщение от voraa
|
будут хвататься запятые
|
можно уточнить что именно является пробелом, /[^a-zа-яё*]/i
<!DOCTYPE html>
<html>
<head>
<title>Untitled</title>
<meta charset="utf-8">
<style type="text/css">
</style>
<script>
document.addEventListener("DOMContentLoaded", function() {
let textarea = document.querySelector(".txt");
textarea.addEventListener("click", function() {
let text = this.value,
start = this.selectionStart,
end = this.selectionEnd;
if (/[a-zа-яё]/i.test(text[start]) && start == end) {
while (start) {
if (/[^a-zа-яё*]/i.test(text[start - 1])) break;
start--;
}
while (end < text.length) {
end++;
if (/[^a-zа-яё*]/i.test(text[end])) break;
}
this.setSelectionRange(start, end);
let selected = text.slice(start, end);
if (selected) {
selected = (/\*([a-zа-яё*]+)\*/i.test(selected)) ? selected.slice(1, -1) : `*${selected}*`;
this.setRangeText(selected, start, end, "end");
}
}
})
});
</script>
</head>
<body>
<textarea name="txt" class="txt">hello word. red* </textarea>
</body>
</html>