如何在textarea中突出显示部分文本

时间:2013-12-11 11:47:40

标签: javascript html css textarea

有没有办法在文字区域中突出显示部分文字?

说,文字为Hi @twitter @twitpic,现在我想强调 @twitter @twitpic ,而不是 。这可能吗?

这必须在飞行中发生。

PS:我不想使用 iFrame

提前致谢

4 个答案:

答案 0 :(得分:7)

没有在特定单词周围包装标签,你无法突出显示它(或者如我所说,至少我不知道如何)。 但是如果包装标签没有问题,你应该使用regEx。

以@:

开头的单词
replace(/@([^ ]+)/g, '<span class="atsign">@$1</span>');

以及以#:

开头的单词
status.replace(/#([^ ]+)/g, '<span class="hashtag">#$1</span>');

检查this fiddle

编辑:您可以替换

var status = 'I tweeted something #one #two @three @four';

var status = $('#phrase').text();

答案 1 :(得分:5)

在该文字上使用<!DOCTYPE html> <html> <body> //here </body> </html> 方法

示例代码:

setSelectionRange

答案 2 :(得分:1)

我来到这里寻找答案,我可以突出显示textarea中的某些单词。在这个帖子中找不到答案了吗?所以,添加我的方式:

对于此示例,您可以执行以下操作:

  1. 从此处下载并添加脚本:http://garysieling.github.io/jquery-highlighttextarea/index.html

  2. 并使用此:

    <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>
    
  3. 更多示例:http://garysieling.github.io/jquery-highlighttextarea/examples.html

答案 3 :(得分:0)

使用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。