匹配textarea中的单词

时间:2014-06-16 12:26:16

标签: javascript jquery

我正在尝试使用textarea

中的#来匹配单词
 var start=/#/ig; // # Match
 var word=/#(\w+)/ig; //#abc Match
 var content=$('#text').val();
 var go= content.match(start); //Content Matching #
 var name= content.match(word); //Content Matching #abc

这里检查文本区域中的值并给出以#开头的输出字 如果发现有两场比赛,则显示两场比赛,但我只需要最后一场比赛

4 个答案:

答案 0 :(得分:1)

.match()函数返回一个匹配数组。

如果要选择最后一个元素,则需要选择它:

name[name.length-1];
  • name.length返回元素数量
  • -1因为数组键以0而不是1
  • 开头

这是一个fiddle,感谢Dave Briand

答案 1 :(得分:0)

试试这个

content = "~test content ~thanks ok ~fine";    
strFine = content.lastIndexOf('~');

它为您传递的最后一个匹配字符或单词或字符串提供索引...

答案 2 :(得分:0)

这个怎么样?

 var text = $('textarea').val();   // "#maxi kcdjnd dcjjncd #ijicd" 

 //Find all ocurrences of words starting with # and ending in space, period or end of text
 var lastMatch = text.match(/(#.*?)(\s|$|\.)/g).pop();

 // match returns ["maxi", "#ijicd"]. pop will get the last element

答案 3 :(得分:0)

re方法match通常返回一个数组。要获得最后一场比赛,您可以使用以下内容:

var name= content.match(word);
var lastMatch = (!!name) ? name.pop() : name;

如果没有匹配,则该方法返回null,并且您希望确保不要尝试将null作为数组进行操作。