#javascript #regex
#javascript #регулярное выражение
Вопрос:
Я пытаюсь сопоставить следующую строку в регулярном выражении Javascript
PC123456
Это то, что у меня есть:
/^PCd*/
Это работает для каждого экземпляра, за вычетом одного с пробелом после «PC», который работает, но должен завершиться неудачей.
Пример:
PC 123456
Это должно завершиться неудачей. Что мне нужно добавить, чтобы второе условие не выполнялось?
Ответ №1:
Измените ваше регулярное выражение на это:
/^PCd $/
Для этого требуется хотя бы одна цифра, и она соответствует, только если в строке больше ничего нет, кроме PC
и цифр.
Это будет соответствовать:
PC123456
PC1
PC99
Оно не будет соответствовать:
PC 12345
PC
PCx1234
Ответ №2:
Вам нужно добавить привязку к концу исходного кода:
/^PCd*$/
«$» в конце настаивает на том, чтобы шаблон соответствовал всей строке. Без него «PC» без сразу следующих цифр не совпадает, потому что «*» означает «ноль или более», а не «один или более».
В качестве альтернативы вы могли бы изменить «*» на » «, но я не знаю, допустимо ли само по себе «PC» в вашем приложении.
Ответ №3:
Требуется хотя бы одна цифра после PC
/^PCd /
или требовать, чтобы строка длилась всю строку
/^PCd*$/