Всем привет! Задача разбить строку '156.75m^2' на массив через регулярку. Мой код
var reg = /(\d+)(\.)?(\d+)?(m)(\^)(2)/,
str = '156.75m^2',
mas = str.split(reg);
Работает все хорошо, но почемута первый и последний елемент массива это пустая строка!
["", "156", ".", "75", "m", "^", "2", ""]
Почему так происходит и как это исправить? Всем спасибо!
Например так:
var reg = /(\d+)(\.)?(\d+)?(m)(\^)(2)/,
str = '156.75m^2',
mas = reg.exec(str);
console.dir(mas);
При выполнении RegExp.exec() нулевой элемент всегда исходная строка. Если она не нужна, добавьте mas = mas.slise(1);
String#split()
разбивает строку по шаблону, т.е. в результирующий массив добавляются подстроки между совпадениями, включая пустые строки в начале/конце и между совпадениями. К тому же, при использовании захватывающих подмасок захваченные подстроки тоже добавляются в конечный массив, что иногда необходимо, но не в данном случае. Тут нужно использовать String#match
или RegExp#exec
и удалить первый элемент массива, если совпадение было найдено:
var reg = /(\d+)(\.)?(\d+)?(m)(\^)(2)/;
var str = '156.75m^2';
var mas = reg.exec(str); // Находим первое совпадение
if (mas) {
mas = mas.slice(1); // Удаляем первый элемент, полное совпадение
}
console.log(mas);
Кофе для программистов: как напиток влияет на продуктивность кодеров?
Рекламные вывески: как привлечь внимание и увеличить продажи
Стратегії та тренди в SMM - Технології, що формують майбутнє сьогодні
Выделенный сервер, что это, для чего нужен и какие характеристики важны?
Современные решения для бизнеса: как облачные и виртуальные технологии меняют рынок
Есть код калькулятора который надо вставить на определенную страницу WordPressПри установке - он не работает
На сайте несколько dropdown селекторов, каждое из выбранных селекторов сохроняю в сессиюТак же нужно менять background самого селектора у которого...
Не могу разобраться в рендеринг, застрял в авторизации, что как пишу я так не рендерит, выходит ошибка