danik.js,
Но это, вообще то не проблема, можно просто регуляркой лишнее обрезать, да и все. Да, на первый взгляд подходит это решение, вроде. |
Ant_Jhon,
В твоем случае, если с регуляркой, напрашивается что-то вроде такого test=function(input){ var re=/(\d+)?\.?\d+\.?|^$/ var s=input.match(re) if(s){if(s[0]===input){...}} } в s[0] вернется паттерн, например, из foo10bar вернется 10, затем сравнивается с исходной строкой, действие наступает, только если совпало, например, 10 пройдет, а 10а -- нет. Глобальный и многострочный поиски тогда не нужны, никто в инпуте не будет с этим извращаться специально, если юзер нажимает энтер или таб, он выскакивает обычно из поля ввода, аоэтому нам нужно тут только первое введенное, более ничего, иначе все чертовски усложняется. |
Цитата:
Или типа нормализовать число, введенное в свободном формате, типа 10 000? Ну тогда и запятые надо в точки трансформировать, и мож еще чего. |
Ant_Jhon,
Вот, проверил, вроде то что тебе надо, если нет, попробуем скорректировать, если чо. test=function(input){ var re=/(\d+)?\.?\d+\.?|^$/ var s=input.match(re) if(s) console.log(s[0]===input) } test(".1f") // false test("111") // true test("a23") // false test("") // true test("10.") // true test("1a1") // false test(".10") // true Только с пустым пробелом то че делать? Приравнивать его к пустой строке или нет? |
вощем изнан збс работает, тут паттерны не нужны. сори за шумиху:) сдела изнаном и забыл
|
Пробелы можно приравнять к пустой строке, мне кажется
|
Терминатор, попробую протестить щас скорректированный паттерн, тот не работал
|
Цитата:
|
Цитата:
var re=/(\d+)?\.?\d+\.?|^(\s+)?$/ А что насчет запятых вместо точек в качестве разделителей? |
Часовой пояс GMT +3, время: 12:25. |