Повторное выражение Javascript для проверки того, начинается ли число с начального нуля
Мне нужно проверить некоторые входы с помощью регулярного выражения.
Вот несколько примеров использования и ожидаемых результатов.
0001 - Matched
001 - Matched
01 - Matched
00.12312 - Matched
000.1232 - Matched
1 - Not matched
20 - Not matched
0.1 - Not matched
0.123123 - Not matched
Как будет выглядеть это регулярное выражение? Если первый char равен 0
, а второй char - numerical[0-9]
, то он недействителен.
Я пробовал это, но он не работает.
[0][0-9]
Ответы
Ответ 1
Попробуйте это регулярное выражение:
^0[0-9].*$
Он будет соответствовать всем, начиная с 0
, за которым следует цифра.
Он будет "соответствовать" тому, что вы называете "недействительным".
Тест-код должен сделать более понятным:
var regExp = /^0[0-9].*$/
console.log(regExp.test("0001")); // true
console.log(regExp.test("001")); // true
console.log(regExp.test("01")); // true
console.log(regExp.test("00.12312")); // true
console.log(regExp.test("000.1232")); // true
console.log(regExp.test("1")); // false
console.log(regExp.test("20")); // false
console.log(regExp.test("0.1")); // false
console.log(regExp.test("0.123123")); // false
Ответ 2
вы можете попробовать этот шаблон, идея заключается в использовании якорей ^
(для начала) и $
(для конца), чтобы ограничить результат тем, что вы ищете:
^0+\d*(?:\.\d+)?$
Ответ 3
Вы можете использовать что-то вроде этого: -
var a = "0001";
/^[0][0-9]/.test(a)
Ответ 4
0+[1-9][0-9]*
Соответствует, по меньшей мере, одному нолю, за которым следует отличная от нуля цифра, за которой следует любое количество цифр. Не соответствует одиночному 0.
Ответ 5
Этот:
/0\d+/.test("0001")
// true
Если "0" ДОЛЖЕН быть первым символом, то:
/^0\d+/.test("0001")