У меня есть шаблон регулярного выражения, который проверяет трехзначное число
/^\d{3}$/.test("123") // true
/^\d{3}$/.test("123.") // false
Я хочу использовать это регулярное выражение как ограничение ввода в текстовом поле.
В принципе, если новое значение соответствует, я разрешаю символ вводить, иначе я его предотвращу.
Проблема в том, что никакое значение никогда не будет соответствовать, потому что "1" не является полным совпадением и не позволит мне вводить его.
Это какой-либо способ проверки частичного соответствия для regEx в javascript?
/^\d{3}$/.test("123") // true
/^\d{3}$/.test("12") // "partial match"
/^\d{3}$/.test("a12") // false
ИЗМЕНИТЬ
\ d {3} был просто примером. Мне нужно использовать регулярное выражение для электронной почты или регулярное выражение для телефона в качестве ограничения ввода.
"email" // true
"[email protected]" // true
"[email protected]@" // false
"@yahoo.com" // false
РЕДАКТИРОВАТЬ 2
У меня есть плагин textBox с ограничением ввода, основанным на регулярном выражении.
Регулярное выражение может быть любым, шестнадцатеричным Regex, например: (#) {1} ([a-fA-F0-9]) {6}
Мне нужно запретить пользователю вставлять символы, которые не соответствуют регулярному выражению.
Например, если текстовое поле пуст, первый разрешенный символ будет "#".
Но если я проверю символ "#" на регулярное выражение, он вернет "false", потому что "#" сам по себе недействителен.
/^(#){1}([a-fA-F0-9]){6}$/.test("#") // false
Но в то же время "#" является частичным действительным, потому что он соответствует формату регулярного выражения (и я должен позволить пользователю его вводить)
Мне нужно знать, могу ли я проверить, является ли строка частичным совпадением регулярного выражения, поэтому я могу позволить пользователю вводить символ.
/^(#){1}([a-fA-F0-9]){6}$/.test("#") // is a partial match, allow type
/^(#){1}([a-fA-F0-9]){6}$/.test("#0") // is a partial match, allow type
/^(#){1}([a-fA-F0-9]){6}$/.test("#00") // is a partial match, allow type
/^(#){1}([a-fA-F0-9]){6}$/.test("#000") // is a partial match, allow type
/^(#){1}([a-fA-F0-9]){6}$/.test("#0000") // is a partial match, allow type
/^(#){1}([a-fA-F0-9]){6}$/.test("#00000") // is a partial match, allow type
/^(#){1}([a-fA-F0-9]){6}$/.test("#000000") // is a partial match, allow type
/^(#){1}([a-fA-F0-9]){6}$/.test("#000000D") // is not a match, prevent typing