使用jQuery选择字符串中最后一个单词的第一个字母

时间:2017-08-16 18:24:10

标签: jquery html

您好我有一个列表,我想按姓氏过滤。我有a个带有字母a-z的标签。目标是当用户单击一个字母时,列表将按姓氏过滤。因此,当用户单击“A”时,所有姓氏以“A”开头的列表项都会显示。

我相信我有逻辑显示/隐藏元素,但我需要帮助定位最后一个单词的第一个字母才能实现我的逻辑。

以下是HTML标记:

<ul id="theList">
    <li><a>John Aoe</a></li>
    <li><a>John Boe</a></li>
    <li><a>John Coe</a></li>
    <li><a>John Doe</a></li>
</ul>

有什么想法吗?

谢谢!

3 个答案:

答案 0 :(得分:3)

你可以使用正则表达式,根据this answer

reg = new RegExp(letterchosen+'\w+$');
var listwitAlastword = $('li').filter(function () {
     return this.innerHTML.match(reg);
     });

答案 1 :(得分:2)

你可以迭代“li”:

$("#theList").find("li").each(function(){
  var a = $(this).find("a").text().split(" ");
  console.log(a[a.length-1].charAt(0))
});

https://jsfiddle.net/k8jjmqL5/

答案 2 :(得分:1)

我刚刚使用了警报,但只要两个名字只有两个名字,代码就会得到最后一个字母的最后一个字母。 如果lastindexOf行具有中间首字母,则var a = "John Aoe".split(" ").pop().charAt(0); var b = "John Coe".split(" ").pop().charAt(0); var c ="John Doe".split(" ").pop().charAt(0); var d ="Max R. Toady" var e= d.charAt(d.lastIndexOf(" ") + 1) alert(a +", " + b +", "+ c + ", " + e)行将起作用。

ActiveRecord::Batches