Учитывая этот HTML:Использование Regex VS JQuery Заменить
<div id="foo">
<input type=button class="foo abtn_1">
<input type=button class="joe bbtn_2">
<input type=button class="doe cbtn_2">
<input type=button class="joe dbtn_1">
<input type=button class="foo ebtn_2">
</div>
По щелчку, Я хочу, чтобы получить первую часть класса с подчеркиванием и номером.
Так из первого входа я бы получать: abtn
В настоящее время я использую:
$('#foo input').on('click', function() {
var a = $(this).attr('class')
.replace('foo','')
.replace('joe','')
.replace('doe','')
.replace('_1','')
.replace('_2','')
console.log(a);
});
Я предположил бы, что там должна быть более надежным и более высокой производительностью мудрым способом сделать это возможно с Regex?
что нужно '' 'in' (^ | \ s) ', Пожалуйста, объясните Regex – diEcho
. Я добавил объяснение всего регулярного выражения к моему ответу. '' 'Является регулярным выражением ИЛИ поэтому' (^ | \ s) 'говорит, чтобы соответствовать началу строки'^'ИЛИ whitespace' \ s'. – jfriend00
@diEcho - я должен добавить, что выполнение этого так, как я делал, предотвращает частичные совпадения имен классов и позволяет именам классов быть в любом порядке и любое количество имен классов. – jfriend00