如何在文本区域突出显示文本的一部分
How to highlight a part of text in textarea
有没有办法在文本区突出显示文本的一部分?
假设文本是Hi @twitter @twitpic
,现在我只想突出显示@twitter和@twitpic,而不是Hi。这可能吗?
这必须马上发生。
PS:我不想使用iFrame
提前感谢
对该文本使用setSelectionRange
方法
样本代码:
<body>
<section>
<textarea id="textarea"></textarea>
<button id="hgh">Hightlight @twiiter</button>
</section>
<script>
window.onload = function () {
var textarea = document.getElementById("textarea");
var checkError = document.getElementById("hgh");
checkError.addEventListener("click", function () {
var index = textarea.innerText.indexOf("@twitter");
if( index >= 0)
textarea.setSelectionRange(index, index + 8);
});
}
</script>
</body>
如果不在特定单词周围包装标签,就无法突出显示它(或者正如我所说,至少我不知道如何突出显示)。但如果包装标签没有问题,则应该使用regEx。
对于以@开头的单词:
replace(/@([^ ]+)/g, '<span class="atsign">@$1</span>');
对于以#开头的单词:
status.replace(/#([^ ]+)/g, '<span class="hashtag">#$1</span>');
检查这个小提琴
编辑:您可以替换
var status = 'I tweeted something #one #two @three @four';
带有
var status = $('#phrase').text();
我来这里是为了寻找一个可以在文本区域突出显示某些单词的答案。在这条线索中找不到答案。所以,添加我是如何做到的:
对于这个示例,您可以执行以下操作:
-
从这里下载并包含脚本:http://garysieling.github.io/jquery-highlighttextarea/index.html
-
使用这个:
<script> $('textarea').highlightTextarea({ words: ['@twitter', '@twitpic'], id: 'demoCustom', caseSensitive: false // or a regular expression like -> words: ['@([^ ]+)'] }); </script> <style> #demoCustom mark { padding:0 3px; margin:-1px -4px; border-radius:0.5em; border:1px solid pink; } </style>
更多示例:http://garysieling.github.io/jquery-highlighttextarea/examples.html
使用jQuery非常简单。
HTML部分:
<textarea id="test">Lorem ipsum dolor sit amet, consectetuer adipiscing elit. Nullam rhoncus aliquam metus. Praesent vitae arcu tempor neque lacinia pretium.</textarea>
<button id="search">search</button>
JS部分:
$(function(){
$("#search").click(function(){
var area = $('#test');
var findWord = "rhoncus";
var index = area.val().indexOf(findWord);
area.focus().prop({'selectionStart': index, 'selectionEnd': index+findWord.length})
})
})
只要将变量findWord更改为您想要突出显示的内容即可。
相关文章:
- 为什么在页面上单击的先前链接的文本显示在 AJAX 请求中
- JavaScript NaN错误,输入文本显示为NaN
- 关于socket.io实时文本显示的问题
- 如何使用javascript使文本显示在文本字段中
- 在它们之间切换时,jQuery 文本显示在活动文本下方
- 使用 ajax 乱码文本显示图像
- 带有文本显示js功能的图像映射 - 某些部分不显示
- 来自 Ajax 请求的文本显示不正确
- 如何使用 JavaScript 使文本显示
- 是否可以将元素内部的文本显示在 ::在 css 之前
- on更改文本框的文本显示在另一个文本框上
- 在文本显示在Scroll上之前在页面上隐藏文本的问题
- 使用带文本显示的Jquery切换文本
- 如何使文本显示速度变慢
- 如何将图片添加到点击计数器文本显示<图像><点击量>
- 文本显示有延迟
- 根据在另一个文本框中输入的文本显示文本框中的文本
- 如何从点击文本显示文件浏览器,并在悬停文本时将鼠标光标更改为指针
- 使文本显示为几行可点击的线条
- 如何使文本显示