我正在尝试能够在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
,但它似乎只适用于选择元素而不是字符。
答案 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