#javascript #jquery #regex #alpha
#javascript #jquery #регулярное выражение #альфа
Вопрос:
По какой-то причине это не работает, хотя все мои поиски говорят, что это должно работать.
У меня есть идентификатор элемента, в котором я пытаюсь увеличить значение на 1.
итак, допустим, у меня есть
<input id="someText1">
Я хочу изменить 1 на 2, поэтому в итоге я получаю
<input id="someText2">
Я попытался сопоставить только текст, используя
text = $("input").attr("id").match(/^[a-zA-Z] $/);
Но когда я вывожу значение text, я получаю null
Пожалуйста, помогите!
Комментарии:
1. Я боюсь ситуации, которая заставляет вас чувствовать, что вы должны это сделать. Можете ли вы опубликовать свою конечную цель, чтобы я, возможно, мог предложить другой подход?
Ответ №1:
Удалите $
знак (текст действительно заканчивается цифрой, и вы говорите ему, что он заканчивается буквой)
Ответ №2:
Ваше регулярное выражение должно быть
text = $("input").attr("id").match(/^[a-zA-Z0-9] $/);
Вам это нужно?
var text = $("input").attr("id").replace(/[0-9] $/, "");
var num = $("input").attr("id").replace(/^[a-zA-Z] /, "");
Ответ №3:
match
Селектор должен точно соответствовать идентификатору, и поскольку ваше регулярное выражение соответствует любой строке, содержащей ТОЛЬКО a-z и A-Z, оно не совпадает someText1
! Вы должны попробовать
^[a-zA-Z] [0-9]$
Ответ №4:
Я бы предложил использовать селектор имен классов, например $('.inputs')
, поскольку это будет быстрее, чем получать все входные элементы на странице, а затем фильтровать по идентификатору (особенно в современных браузерах).