Форум программистов, компьютерный форум, киберфорум
Наши страницы
JavaScript: RegExp
Войти
Регистрация
Восстановить пароль
 
ProstoMad
49 / 39 / 5
Регистрация: 30.06.2010
Сообщений: 1,191
1

Пытаюсь распарсить строку

02.01.2019, 06:52. Просмотров 338. Ответов 5
Метки нет (Все метки)

Приходит строка вида:
'\n\t\t\t\t\t\t\t\t79 pуб.15 pуб.\t\t\t\t\t\t\t'
мне нужно получить число 15 из нее
пытаюсь так:
Javascript
1
2
qwe = '\n\t\t\t\t\t\t\t\t79 pуб.15 pуб.\t\t\t\t\t\t\t'
qwe = qwe.replace(/.*([0-9]{1,4})\ pуб\.\ [\\t]+$/gim, '$1')
Но не хочет работать, что не так делаю?
P.S. "руб" - не кириллица кажется, это если вдруг будете пробовать копировать отсюда

Добавлено через 30 минут
Известно что в строке будет точно одно число, но иногда два. В случае когда два числа, нужно брать второе
0
Similar
Эксперт
41792 / 34177 / 6122
Регистрация: 12.04.2006
Сообщений: 57,940
02.01.2019, 06:52
Ответы с готовыми решениями:

Распарсить строку и записать полученные данные в двумерный массив
необходимо разобрать строку в двумерный массив . строка вида ,]

Пытаюсь разработать тест на JS
Мне необходимо разработать тест для института. Он будет состоять примерно из 25 вопросов. Но я...

Пытаюсь найти скрипт..
Меня попросили найти java-скрипт кнопки, которая бы меняла кодировку страницы(12.51, USO 8959-5,...

Пытаюсь сделать калькулятор
Сразу говорю, что я полный дуб. Объясните на пальцах, пожалуйста, что сделать. чтобы вся эта...

Пытаюсь написать свой собственный slideUp
Здравствуйте всем. jQuery - это, конечно, круто, но решил попробовать кое-что сделать...

5
pvzh
59 / 40 / 23
Регистрация: 04.12.2018
Сообщений: 111
02.01.2019, 21:30 2
Цитата Сообщение от ProstoMad Посмотреть сообщение
\n\t\t\t\t\t\t\t\t79 pуб.15 pуб.\t\t\t\t\t\t\t
Тут p - не кириллица, а латиница.

В образце входной строки после точки нет пробела, а в регулярке он есть, лишний. Если в строке \t - это на самом деле табуляция, то в регулярке не надо слеш экранировать, т.е. вместо \\t надо \t.

Предлагаю сначала найти число, а потом при удаче уже на него менять:

Javascript
1
2
3
4
5
let qwe = '\n\t\t\t\t\t\t\t\t79 pуб.15 pуб.\t\t\t\t\t\t\t'
let match = (/([0-9]{1,4})\spуб\.[\t]+$/gi).exec(qwe)
if (match !== null) {
  qwe = match[1]
}
1
Fedor Vlasenko
Нарушитель
Эксперт PHP
841 / 626 / 219
Регистрация: 01.02.2015
Сообщений: 1,734
03.01.2019, 01:22 3
Javascript
1
2
3
let str = '\n\t\t\t\t\t\t\t\t79 pуб.15 pуб.\t\t\t\t\t\t\t';
str = str.replace(/.*[^\d](\d+).*$/, '$1');
console.log(str);
Вариант
0
pvzh
59 / 40 / 23
Регистрация: 04.12.2018
Сообщений: 111
03.01.2019, 01:59 4
Fedor Vlasenko, тут replace оставляет часть исходной строки, а именно первый \n:

Javascript
1
2
console.log(JSON.stringify(str));
"\n15"
1
Fedor Vlasenko
Нарушитель
Эксперт PHP
841 / 626 / 219
Регистрация: 01.02.2015
Сообщений: 1,734
03.01.2019, 02:25 5
жесть не заметил такой коварной подстановки в js
Javascript
1
2
3
var str = '\n\t\t\t\t\t\t\t\t79 pуб.15 pуб.\t\t\t\t\t\t\t';
var res = /.*[^\d](\d+)/.exec(str);
console.log(res);
1
amr-now
Эксперт JS
1399 / 780 / 340
Регистрация: 14.06.2018
Сообщений: 2,021
05.01.2019, 15:13 6
Цитата Сообщение от ProstoMad Посмотреть сообщение
Известно что в строке будет точно одно число, но иногда два. В случае когда два числа, нужно брать второе
PHP/HTML
1
2
3
4
5
6
7
8
9
10
11
12
13
<!DOCTYPE html>
<html>
<head>
    <meta charset="utf-8" />
</head>
<body>
    <script>
        let qwe = '\n\t\t\t\t\t\t\t\t79 pуб.15 pуб.\t\t\t\t\t\t\t';
        qwe = qwe.match(/((\d+) pуб\.)+/)[2];
        console.log(qwe);
    </script>
</body>
</html>
0
05.01.2019, 15:13
MoreAnswers
Эксперт
37091 / 29110 / 5898
Регистрация: 17.06.2006
Сообщений: 43,301
05.01.2019, 15:13

Пытаюсь понять шаблонизатор Handlebars для JavaScript
Привет. Нагуглил вот эту статью:...

Распарсить текст в массив
входные данные вида &quot;текст1:текст2&quot; содержатся в переменной var1. строк там будет несколько. как...

Распарсить телефон на страничке
Доброго времени суток уважаемые форумчане! Второй день бьюсь над задачей, достать телефон с сайта...


Искать еще темы с ответами

Или воспользуйтесь поиском по форуму:
6
Ответ Создать тему
Опции темы

КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin® Version 3.8.9
Copyright ©2000 - 2019, vBulletin Solutions, Inc.
Рейтинг@Mail.ru