Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/javascript/388.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181

Warning: file_get_contents(/data/phpspider/zhask/data//catemap/4/regex/20.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181

Warning: file_get_contents(/data/phpspider/zhask/data//catemap/7/arduino/2.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Javascript正则表达式匹配最后一个单词,而不考虑特殊字符_Javascript_Regex - Fatal编程技术网

Javascript正则表达式匹配最后一个单词,而不考虑特殊字符

Javascript正则表达式匹配最后一个单词,而不考虑特殊字符,javascript,regex,Javascript,Regex,我们用这个脚本来改变句子中的最后一个单词 $div = $('.cPageHeader h2'); $div.html($div.text().replace(/(\w+?)$/, '<span class="cOrange">$1</span>')); $div=$('.cPageHeader h2'); $div.html($div.text().replace(/(\w+?)$/,“$1”); 只要不涉及特殊字符,这种方法就可以很好地工作 只要我们有一个标题,比

我们用这个脚本来改变句子中的最后一个单词

$div = $('.cPageHeader h2');
$div.html($div.text().replace(/(\w+?)$/, '<span class="cOrange">$1</span>'));
$div=$('.cPageHeader h2');
$div.html($div.text().replace(/(\w+?)$/,“$1”);
只要不涉及特殊字符,这种方法就可以很好地工作

只要我们有一个标题,比如
International fancy stüff
,突出显示就会出错。只有ff将突出显示。如果行的末尾有一个字符
(!-.?)
,则会发生相同的错误

是否有人可以更改脚本,以便突出显示最后一个完整单词(包括附加标点符号),而不考虑任何重音字符

我建议:

$div = $('.cPageHeader h2');
$div.html($div.text().replace(/(\S+?)$/, '<span class="cOrange">$1</span>'));

参考资料:

    • 我建议:

      $div = $('.cPageHeader h2');
      $div.html($div.text().replace(/(\S+?)$/, '<span class="cOrange">$1</span>'));
      

      参考资料:


      这应该是您所需要的全部:

      $div.text().replace(/(\S+)$/, '<span class="cOrange">$1</span>')
      
      $div.text()。替换(/(\S+)$/,“$1”)
      
      无论如何,您都希望在匹配中包含尾随标点符号,因此
      \w+
      从来都不是适合此作业的工具。通过这种方式,您不必将非ASCII字符(如
      u
      )视为单词字符


      仅供参考,使用像
      \s+?
      这样不情愿的量词没有意义,因为您一直在匹配字符串的末尾。在这种情况下,它不是不正确的,只是毫无意义。

      这应该是您所需要的全部:

      $div.text().replace(/(\S+)$/, '<span class="cOrange">$1</span>')
      
      $div.text()。替换(/(\S+)$/,“$1”)
      
      无论如何,您都希望在匹配中包含尾随标点符号,因此
      \w+
      从来都不是适合此作业的工具。通过这种方式,您不必将非ASCII字符(如
      u
      )视为单词字符


      仅供参考,使用像
      \s+?
      这样不情愿的量词没有意义,因为您一直在匹配字符串的末尾。在这种情况下没有错,只是毫无意义。

      Nifty
      \S
      的意思是“除了空格字符以外的任何东西”,包括
      \t
      \n
      我知道在Perl中不鼓励使用编号组引用,如
      $1
      ,但我从未听说过JavaScript。另外,在这里使用
      \b
      是不正确的。只有当第一个和最后一个字符始终是单词字符,并且您不能假设它们是单词字符时,这才有效。这就是为什么您必须首先从
      \w+
      切换到
      \s+
      的原因。噢,这只是Perl吗?老实说,我记不起我是在哪里遇到这个警告的(而且谷歌在我的搜索中也没有找到任何有意义的东西)
      \S
      的意思是“除了空格字符以外的任何东西”,包括
      \t
      \n
      我知道在Perl中不鼓励使用编号组引用,如
      $1
      ,但我从未听说过JavaScript。另外,在这里使用
      \b
      是不正确的。只有当第一个和最后一个字符始终是单词字符,并且您不能假设它们是单词字符时,这才有效。这就是为什么您必须首先从
      \w+
      切换到
      \s+
      的原因。噢,这只是Perl吗?老实说,我记不起我是在哪里遇到这个警告的(而且谷歌在我的搜索中没有任何有意义的东西)。不过,我认为你需要使用
      html()
      ,除非他想在实际文本中使用
      。我删除了这个部分,以便我可以集中精力处理与正则表达式相关的内容。我认为你需要使用
      html()
      ,尽管如此,除非他想要实际文本中的
      ,否则我删除了该部分,以便集中精力处理与正则表达式相关的内容。