jQuery第一个也是最后一个给定的角色

时间:2013-05-05 18:40:47

标签: javascript jquery

我正在尝试能够在span元素中选择给定字符的第一个和最后一个实例。

e.g。

<span class="foo">hello (this is hello)</span>

我希望能够在此范围内找到第一个括号和最后一个括号,并附加一个类,以便输出可能是:

<span class="foo">hello <span class="bar">(this is hello)</span></span>

这可能吗?我在jQuery中查看了first,但它似乎只适用于选择元素而不是字符。

2 个答案:

答案 0 :(得分:1)

您可以使用正则表达式:

$('.foo').html(function(_, html){
     return html.replace(/\((.*)\)/, '<span class="bar">($1)</span>')
});

Demonstration(点击“使用JS运行”

如果您想要处理多个bracked组,请使用

$('.foo').html(function(_, html){
     return html.replace(/\(([^\)]*)\)/g, '<span class="bar">($1)</span>')
});

答案 1 :(得分:0)

Javascript为此提供了本机方法。字符串具有indexOf()方法,该方法返回给定字符串或字符的第一个实例的位置,以及返回最后一个实例的lastIndexOf()方法。 E.g:

var firstE = "Hello, Ben!".indexOf('e'); // firstE = 1
var lastE = "Hello, Ben!".lastIndexOf('e'); //lastE = 8