Форум: Форум PHPФорум ApacheФорум Регулярные ВыраженияФорум MySQLHTML+CSS+JavaScriptФорум FlashРазное
Новые темы: 0000000
Самоучитель MySQL 5. Авторы: Кузнецов М.В., Симдянов И.В. Объектно-ориентированное программирование на PHP. Авторы: Кузнецов М.В., Симдянов И.В. PHP. Практика создания Web-сайтов (второе издание). Авторы: Кузнецов М.В., Симдянов И.В. PHP Puzzles. Авторы: Кузнецов М.В., Симдянов И.В. PHP 5/6. В подлиннике. Авторы: Кузнецов М.В., Симдянов И.В.
ВСЕ НАШИ КНИГИ
Консультационный центр SoftTime

Форум Регулярные Выражения

Выбрать другой форум

 

Здравствуйте, Посетитель!

вид форума:
Линейный форум Структурный форум

тема: Проверка строки на ноль в начале
 
 автор: TetRiska   (04.10.2012 в 12:06)   письмо автору
 
 

Добрый день. На сколько корректно я сотавил регексп можете сказать?
/^(0|[1-9]\d{0,})$/

не должен пропускать:
009
09
09090
должен пропускать:
0
90
90550
и тд, т.е. в начале строки не должно быть пару нулей или более (0088), а также в начале строки перед числом > 0 не должно быть нуля (07900)

спасибо за внимание

  Ответить  
 
 автор: confirm   (04.10.2012 в 12:30)   письмо автору
 
   для: TetRiska   (04.10.2012 в 12:06)
 

<input onkeyup="this.value = this.value.replace(/\b00/, 0)" />

  Ответить  
 
 автор: TetRiska   (04.10.2012 в 12:35)   письмо автору
 
   для: confirm   (04.10.2012 в 12:30)
 

не совсем то, мне в таком виде надо как я представил
вот немного укоротил
/^(0|[1-9]\d*)$/

  Ответить  
 
 автор: confirm   (04.10.2012 в 12:44)   письмо автору
 
   для: TetRiska   (04.10.2012 в 12:35)
 

Что значит не то, если вы приводите пример, когда в начале не должно быть двух нулей?
У вас своеобразная манера задавать вопросы - пишите одно, думаете совсем о другом.

  Ответить  
 
 автор: TetRiska   (04.10.2012 в 12:51)   письмо автору
 
   для: confirm   (04.10.2012 в 12:44)
 

не должно быть:
0789789
006786868
0006456456
0000000
.........
должно быть:
0
50
9078900789870
.........

  Ответить  
 
 автор: confirm   (04.10.2012 в 12:57)   письмо автору
 
   для: TetRiska   (04.10.2012 в 12:51)
 

>т.е. в начале строки не должно быть пару нулей или более (0088), а также в начале строки перед числом > 0 не должно быть нуля (07900)

Если первое, то значит один 0 в начале допускается, если вам нужно второе, значит не должно быть в начале вообще нулей. Вы пишите противоречивое, ибо что 8, что 7, это больше 0.

Что касается не должно быть 006786868 и далее, то то что я написал, этого и не разрешит. Вот потому и пишу - вас понять, чего вы хотите, это задача посложнее рег. выражений, просто не первый раз это замечаю.

  Ответить  
 
 автор: TetRiska   (04.10.2012 в 13:10)   письмо автору
 
   для: confirm   (04.10.2012 в 12:57)
 

чего-то мы недопонимаем друг друга
регекспа не должна пропускать в начале строки несколько нолей, несколько нолей и потом цифры , один ноль и потом цифры...нужно пропустить только ноль если он один или ноли когда они идут дальше в цифровом значении

  Ответить  
 
 автор: confirm   (04.10.2012 в 13:16)   письмо автору
 
   для: TetRiska   (04.10.2012 в 13:10)
 

Так я и говорю, что вас понять трудно - противоречивые требования, и т.п..
Может быть вы хотите простого - только один ноль, независимо где это будет, в начале, в конце...?
Вроде бы как я понял - в начале (а начало оно и в Африке начало - это граница слова) только один ноль, так? Но что тогда значит "если больше ноля, то ноля не должно быть"? Вот как это соотносится с первым требованием?

То что я вам привел, как раз и разрешает один ноль в начале (по границе слова), а дальше хоть пачку нулей пишите. Запустите и посмотрите.

Если не то, то я вас точно не понимаю.

  Ответить  
 
 автор: TetRiska   (04.10.2012 в 13:19)   письмо автору
 
   для: confirm   (04.10.2012 в 13:16)
 

работает, спасибо, извиняюсь за некорректное разъяснение

  Ответить  
Rambler's Top100
вверх

Rambler's Top100 Яндекс.Метрика Яндекс цитирования