Форум программистов
 

Восстановите пароль или Зарегистрируйтесь на форуме, о проблемах и с заказом рекламы пишите сюда - alarforum@yandex.ru, проверяйте папку спам!

Вернуться   Форум программистов > Web программирование > JavaScript, Ajax
Регистрация

Восстановить пароль
Повторная активизация e-mail

Купить рекламу на форуме - 42 тыс руб за месяц

Ответ
 
Опции темы Поиск в этой теме
Старый 28.10.2015, 14:15   #1
Stilet
Белик Виталий :)
Старожил
 
Аватар для Stilet
 
Регистрация: 23.07.2007
Сообщений: 57,792
По умолчанию Регулярное выражение. Элементы строки в массив.

Всем доброго. Понадобилось развернуть элементы строки:
Цитата:
15 - 17_26_04_875\файло.тхт
в массив
Цитата:
[15,17,26,04,875,"файло.тхт"]
Выбрал для этого регулярку:
Код:
/(\d*)(?:\W*)(\d*)_(\d*)_(\d*)\S*\\(\w*.*)/gi
Однако скрипт:
Код:
    var re = /(\d*)(?:\W*)(\d*)_(\d*)_(\d*)\S*\\(\w*.*)/gi; 
    var str = '15 - 17_26_04_875\файло.тхт';
    var m=re.exec(str);
    document.body.innerHTML=m.length();
По выполнению кода m получает значение null.
Не смотря на то, что онлайн тестер регулярок показывает следующее:
Безымянный.jpg

Соответственно вопрос: Что я делаю не так?
I'm learning to live...
Stilet вне форума Ответить с цитированием
Старый 28.10.2015, 15:09   #2
Serge_Bliznykov
Старожил
 
Регистрация: 09.01.2008
Сообщений: 26,238
По умолчанию

Виталий, слеш съедается в строковой константе!

попробуй так:
Код:
    var str = '15 - 17_26_04_875\\файло.тхт';
Serge_Bliznykov вне форума Ответить с цитированием
Старый 28.10.2015, 15:29   #3
Stilet
Белик Виталий :)
Старожил
 
Аватар для Stilet
 
Регистрация: 23.07.2007
Сообщений: 57,792
По умолчанию

Тю... А как же валидатор там отработал?
Вот странности, а я уже думал что чего-то не знаю...
I'm learning to live...
Stilet вне форума Ответить с цитированием
Старый 01.11.2015, 23:51   #4
nerv
Форумчанин
 
Аватар для nerv
 
Регистрация: 26.04.2010
Сообщений: 450
По умолчанию

Код:
'15 - 17_26_04_875\\файло.тхт'.split(/[-_\\\s]+/);
только я бы на твоем месте регулярными выражениями это не делал =)
Тишина – самый громкий звук
nerv вне форума Ответить с цитированием
Старый 03.11.2015, 20:47   #5
Naive
Раздолбайских Дел
Старожил
 
Аватар для Naive
 
Регистрация: 22.05.2009
Сообщений: 3,828
По умолчанию

Цитата:
Сообщение от nerv Посмотреть сообщение
Код:
'15 - 17_26_04_875\\файло.тхт'.split(/[-_\\\s]+/);
только я бы на твоем месте регулярными выражениями это не делал =)
Ты же сам регулярку юзанул
Alar, верни репу!
Naive вне форума Ответить с цитированием
Старый 03.11.2015, 21:10   #6
Stilet
Белик Виталий :)
Старожил
 
Аватар для Stilet
 
Регистрация: 23.07.2007
Сообщений: 57,792
По умолчанию

Цитата:
я бы на твоем месте регулярными выражениями это не делал =)
А почему? Ресурсоемко?
I'm learning to live...
Stilet вне форума Ответить с цитированием
Старый 03.11.2015, 23:39   #7
nerv
Форумчанин
 
Аватар для nerv
 
Регистрация: 26.04.2010
Сообщений: 450
По умолчанию

> Ты же сам регулярку юзанул
я предложил еще одни вариант регулярного выражения и упомянул, что не стал бы их использовать)

> А почему? Ресурсоемко?
ненадежно, сложно читать, поддерживать, ...

лучше как-то так
Код:
'use strict';

let string = '15 - 17_26_04_875\\файло.тхт';
let index = string.lastIndexOf('\\');
let filename = string.slice(index + 1);

string = string.slice(0, index);
index = string.lastIndexOf(' ');

let code = string.slice(index + 1);

index = string.indexOf(' ');

let number = string.slice(0, index);

console.log([number, code, filename]);
Тишина – самый громкий звук
nerv вне форума Ответить с цитированием
Старый 04.11.2015, 09:47   #8
Stilet
Белик Виталий :)
Старожил
 
Аватар для Stilet
 
Регистрация: 23.07.2007
Сообщений: 57,792
По умолчанию

Цитата:
ненадежно, сложно читать, поддерживать, ...
Ну понятно. Приму к сведению.
I'm learning to live...
Stilet вне форума Ответить с цитированием
Ответ


Купить рекламу на форуме - 42 тыс руб за месяц

Опции темы Поиск в этой теме
Поиск в этой теме:

Расширенный поиск


Похожие темы
Тема Автор Раздел Ответов Последнее сообщение
Регулярное выражение nibufep Общие вопросы Delphi 6 01.01.2015 19:43
Регулярное выражение xlebobulka Microsoft Office Excel 5 02.08.2013 18:32
регулярное выражение Mortimoro JavaScript, Ajax 3 22.06.2013 09:16
Регулярное выражение jeysmook C# (си шарп) 0 24.03.2013 22:25
регулярное выражение XeN0N Помощь студентам 1 27.01.2009 15:14