Javascript 将字符串转换为数组,并在文本区域内选择匹配的单词

Javascript 将字符串转换为数组,并在文本区域内选择匹配的单词,javascript,jquery,Javascript,Jquery,$('textarea')。在('keyup',function()上{ var ths=$(本); var数组=$(this.val().split(“”); array.forEach(函数(值){ if(value.match(/(三个字)/g)){ th.val().选择(值); } }) }) word twowords threewordsmatch()函数返回字符串数组中的匹配项,我举了一个示例来演示它 试着这样做: $('button').on('click', functio

$('textarea')。在('keyup',function()上{
var ths=$(本);
var数组=$(this.val().split(“”);
array.forEach(函数(值){
if(value.match(/(三个字)/g)){
th.val().选择(值);
}
})
})

word twowords threewords
match()函数返回字符串数组中的匹配项,我举了一个示例来演示它

试着这样做:

$('button').on('click', function(){
    console.log('click');

  var tarea = $('textarea');
  var r = tarea.val().match(/(word)/g);
  console.log(r);
  console.log('jobs done');
});
试穿一下

然后,您还想做什么取决于您需要什么,如果您只想知道是否有匹配项,那么只需检查返回的数组是否为空即可

在这种情况下,为了方便起见,我使用一个按钮来触发检查

edit:version without button

match()函数返回字符串数组中的匹配项,我举了一个示例来演示它

试着这样做:

$('button').on('click', function(){
    console.log('click');

  var tarea = $('textarea');
  var r = tarea.val().match(/(word)/g);
  console.log(r);
  console.log('jobs done');
});
试穿一下

然后,您还想做什么取决于您需要什么,如果您只想知道是否有匹配项,那么只需检查返回的数组是否为空即可

在这种情况下,为了方便起见,我使用一个按钮来触发检查

编辑:不带按钮的版本
$('textarea')。在('keyup',function()上{
var wordToSearch='threewords'
var reg=new RegExp('\\b'+wordToSearch+'\\b')
var indexStart=$(this.val().search(reg)
如果(indexStart>=0){
this.selectionStart=indexStart;
this.selectionEnd=indexStart+wordToSearch.length;
}
})

单词两个单词三个单词
$('textarea')。在('keyup',function()上{
var wordToSearch='threewords'
var reg=new RegExp('\\b'+wordToSearch+'\\b')
var indexStart=$(this.val().search(reg)
如果(indexStart>=0){
this.selectionStart=indexStart;
this.selectionEnd=indexStart+wordToSearch.length;
}
})


word twowords threewords
。选择
与您预期的不一样

  • $(“#目标”)。选择(值)
    语法不正确
    $(“#target”).select()
    是一种有效的语法,但它不会突出显示它在id为“target”的元素上触发
    select
    事件的任何内容
  • 当选择任何文本时(如中),单击并用鼠标拖动,
    select
    事件将被触发。可以通过向其附加处理程序来处理它:
  • 例如:

        $( "#target" ).select(function() {
            $( "div" ).text( "Something was selected" ).show().fadeOut( 1000 );
        });
    
    th.val()。选择(值)部分代码实际上不是函数。因此出现了错误


    th.val().select()最终会触发匹配值上的
    select
    事件,这不符合您的目的。

    。select
    的工作方式与您的预期不同

  • $(“#目标”)。选择(值)
    语法不正确
    $(“#target”).select()
    是一种有效的语法,但它不会突出显示它在id为“target”的元素上触发
    select
    事件的任何内容
  • 当选择任何文本时(如中),单击并用鼠标拖动,
    select
    事件将被触发。可以通过向其附加处理程序来处理它:
  • 例如:

        $( "#target" ).select(function() {
            $( "div" ).text( "Something was selected" ).show().fadeOut( 1000 );
        });
    
    th.val()。选择(值)部分代码实际上不是函数。因此出现了错误


    th.val().select()最终会触发匹配值上的
    select
    事件,这不符合您的目的。

    什么是
    。select()
    应该做什么?你想在这个循环中做什么?@Kokogino我应该写多个单词,然后将它们转换为每个单词的数组,然后我检查这些单词中是否有一个等于
    word
    ,如果是,那么我想
    选择它来更改它。类似于高亮显示,但选择此特定单词时
    。请尝试th.val(值)而不是。select@Goran.it尝试后,它将清除所有
    文本区域
    ,然后仅在
    数组中键入最后一个值。我使用了
    th.val(value.select()
    那么您想突出显示“word”的每一次出现吗?什么是
    .select()
    应该做的?你想在这个循环中做什么?@Kokogino我应该写多个单词,然后将它们转换为每个单词的数组,然后我检查这些单词中是否有一个等于
    word
    ,如果是,那么我想
    选择它来更改它。类似于高亮显示,但选择此特定单词时
    。请尝试th.val(值)而不是。select@Goran.it尝试后,它将清除所有
    文本区域
    ,然后仅在
    数组中键入最后一个值。我使用了
    th.val(value.select()
    所以你想突出显示每次出现的“word”?我用
    if(value.match(/(threewords)/g)检查了
    选择
    ing内部文本时出现了问题。@Toleo ok我想你只需要在正则表达式值中添加单词边界。match(/\b(word)\b/g)我用
    if(value.match(/(threewords)/g)检查了
    问题发生在
    选择内部文本时。@Toleo ok我想您只需要在正则表达式值中添加单词边界。匹配(/\b(word)\b/g)