【问题标题】:Regex to extract word from a line正则表达式从一行中提取单词
【发布时间】:2013-05-10 00:12:17
【问题描述】:

我正在尝试提取圆括号内的单词。

代码:

$('.vote').each(function() {
 var vote_count = $('.vote .likedButton').attr('title');
 var split_count = vote_count.replace(/\(([^)]+)\)/,"");
 alert(split_count);
});

我要获取的字符串-

Message reputation : 50% (2 votes) 试图获得 2 票

我上面的 JavaScript 正则表达式只是删除了这一行。我错过了一些正则表达式还是需要使用

.match(/\(([^)]+)\)/);

谁能解释一下谢谢

【问题讨论】:

  • 不需要反对票,因为这是一个简单的问题。我以前有过这段代码的工作,有些我忘记了使用哪个或我做错了什么,我应该在 ^ 之后使用星号吗?就像这样^*
  • 您在示例中使用的是 replace() 而不是 match()。更改它,您将能够使用alert(split_count[1]); 获得所需的文本。
  • 谢谢乔,我很感激。

标签: javascript jquery regex replace match


【解决方案1】:

LIVE DEMO

$('.vote').each(function() {

   var str = $('.likedButton', this).attr('title');
   $(this).prepend( str.match(/\(([^)]+)\)/)[1] );

});

【讨论】:

  • 啊,我知道我需要 .match(),哇,我完全失去了这个想法。
  • @EasyBB 不仅,照顾后代$('.likedButton', this) 意味着.likedButton 的孩子this (.vote)
  • @roXon: $(this).find('.likedButton') 更直观。
  • @Blender 直观是你习惯的,无论如何听说.find() 更快一点,所以这实际上是你可以在 EasyBB (@) 的一个好建议
  • @roXon:“熟悉”是你的习惯。直观意味着它几乎不需要任何解释。上下文参数非常不直观
猜你喜欢
  • 1970-01-01
  • 2017-11-27
  • 2011-12-31
  • 1970-01-01
  • 1970-01-01
  • 2021-12-24
  • 1970-01-01
  • 2011-03-16
相关资源
最近更新 更多