Почему это регулярное выражение JavaScript не работает? - PullRequest
1 голос
/ 13 апреля 2011

По какой-то причине это не работает, но все мои поиски говорят, что это должно работать.

У меня есть идентификатор элемента, где я пытаюсь увеличить значение на 1.

скажем, у меня есть

<input id="someText1">

Я хочу изменить 1 на 2, поэтому я получаю

<input id="someText2">

Я пытался сопоставить только текст, используя

text = $("input").attr("id").match(/^[a-zA-Z]+$/);

Но при выводе значения текста я получаю ноль

Пожалуйста, помогите!

Ответы [ 4 ]

6 голосов
/ 13 апреля 2011

Удалите знак $ (текст заканчивается цифрой, а вы говорите, что он заканчивается буквой)

0 голосов
/ 13 апреля 2011

Я бы предложил использовать селектор имени класса, такой как $('.inputs'), поскольку он будет быстрее, чем получение всех элементов ввода на странице, а затем фильтрация по идентификатору (особенно в современных браузерах).

0 голосов
/ 13 апреля 2011

Селектор match должен точно совпадать с идентификатором, а поскольку ваше регулярное выражение соответствует любой строке, содержащей ТОЛЬКО az и AZ, оно не соответствует someText1!Вы должны попробовать

^[a-zA-Z]+[0-9]$
0 голосов
/ 13 апреля 2011

Ваше регулярное выражение должно быть

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]+/, "");
...