Регулярное выражение для однозначных чисел
Добрый день.
Имеется строка вида: 1a5b23h)221 То есть между числами в случайном порядке располагаются буквы, символы и т.д. Задача: найти все однозначные числа, т.е. 1, 2, 3, 4, 5, 6, 7, 8, 9 (можно без нуля). Т.е. из примера выше нужно найти 1, 5. Пробовал так: /[0-9](?![0-9]))/ Но в таком случае находит 3 на конце 23 и 1 на конце 221. |
Цитата:
|
Все однозначные числа, я же написал.
То есть 1 и 5 подходит, а 221 не подходит, т.к. это 3-х значное число. |
Цитата:
|
2 и 3 стоят рядом друг с другом, поэтому это 2-х значное число 23, вот если бы было
2fgdf3fgтогда бы эти числа подошли. |
Примерно понял, какую регулярку нужно написать. Но теперь возник такой вопрос:
Есть спецсимвол x(?!y), он находит х, если за ним не следует у, а есть ли спецсимвол, который находит х, если ПЕРЕД ним не следует у? Что - то в Интернете только x(?!y) есть. |
madflash001,
:-? var str = '1a5b23h)221'; alert(str.replace(/\d{2,}/g,'').match(/\d/g)) |
Хм... Интересный подход. Правда, наверное, не самый быстрый. Одной регуляркой было бы быстрее, а у меня строка очень большая.
Но, в любом случае, спасибо большое. Сам бы не додумался. |
alert('1a5b23h)221'.split(/\D+/).filter(function(el){return el.length == 1})) |
Часовой пояс GMT +3, время: 19:32. |