Javascript.RU

Создать новую тему Ответ
 
Опции темы Искать в теме
  #1 (permalink)  
Старый 05.03.2018, 10:50
Интересующийся
Отправить личное сообщение для MrFlatman Посмотреть профиль Найти все сообщения от MrFlatman
 
Регистрация: 20.02.2018
Сообщений: 13

Найти слова с помощью регулярного выражения
Есть строка, имеет вид стр1 стр2 стр3 стр1 в ответ должно вывести стр1 стр2 стр1, он он выводит null, ему не нравиться, все это должно стоять рядом, а как сделать так, чтобы он находил слова не смотря на препятствия?

function valid(form) {

        var str = form.str.value;
        var a = form.regul.value;
        var b = new RegExp(a + "+", "ig");
        var result = str.match(b);
        console.log(a);
        document.getElementById('ste').innerHTML = "Найдено: " +result;

    }
Ответить с цитированием
  #2 (permalink)  
Старый 05.03.2018, 11:15
Аватар для j0hnik
Профессор
Отправить личное сообщение для j0hnik Посмотреть профиль Найти все сообщения от j0hnik
 
Регистрация: 01.12.2016
Сообщений: 3,650

если нужно удалить стр3, это можно сделать с помощью метода replace()
Ответить с цитированием
  #3 (permalink)  
Старый 05.03.2018, 11:21
Интересующийся
Отправить личное сообщение для MrFlatman Посмотреть профиль Найти все сообщения от MrFlatman
 
Регистрация: 20.02.2018
Сообщений: 13

Сообщение от j0hnik Посмотреть сообщение
если нужно удалить стр3, это можно сделать с помощью метода replace()
Да там даже не удалить ее, а просто чтобы регулярное выражение искало не просто точное совпадение, а просто совпадения по словам. В моем случаи он если не находит четкую последовательность заданных слов выдает ошибку, а хотелось чтобы он не смотрел на слова которые могут встречаться у него на пути.
Или же проще наверное действительно взять строку и удалить от туда элемент. Ну опять же, он же удалит только заданную мною строку? А предложения и слова поисковые теоретически могут поменяться..
Ответить с цитированием
  #4 (permalink)  
Старый 05.03.2018, 11:31
Аватар для j0hnik
Профессор
Отправить личное сообщение для j0hnik Посмотреть профиль Найти все сообщения от j0hnik
 
Регистрация: 01.12.2016
Сообщений: 3,650

почти все методы работы со строками возвращают НОВУЮ строку.
Если не получается с регуляркой, видимо неправильно ее составили.
Ответить с цитированием
  #5 (permalink)  
Старый 05.03.2018, 12:34
Аватар для рони
Профессор
Отправить личное сообщение для рони Посмотреть профиль Найти все сообщения от рони
 
Регистрация: 27.05.2010
Сообщений: 33,123

MrFlatman,
var str = "стр1 стр2 стр3 стр1";
var a = "стр1 стр2 стр1";
var b = new RegExp(a.split(/\s+/).join(".*?"), "ig");
var result = str.match(b);
alert(result);
Ответить с цитированием
  #6 (permalink)  
Старый 05.03.2018, 13:40
Аватар для ksa
ksa ksa вне форума
CacheVar
Отправить личное сообщение для ksa Посмотреть профиль Найти все сообщения от ksa
 
Регистрация: 19.08.2010
Сообщений: 14,228

Сообщение от MrFlatman
Есть строка, имеет вид стр1 стр2 стр3 стр1 в ответ должно вывести стр1 стр2 стр1
Как вариант...

var str='стр1 стр2 стр3 стр1';
var re=/стр(1|2)/g;
alert(str.match(re).join(' '));

Или вовсе так

var str='стр1 стр2 стр3 стр1';
var re=/(стр1)|(стр2)/g;
alert(str.match(re).join(' '));
Ответить с цитированием
Ответ



Опции темы Искать в теме
Искать в теме:

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


Похожие темы
Тема Автор Раздел Ответов Последнее сообщение
Поиск по файлу с использованием регулярного выражения yarm Node.JS 1 16.02.2018 12:09
Как заменить символ ":" и цифры перед ним с помощью регулярного выражения RudeMood Общие вопросы Javascript 4 22.05.2017 13:22
Как найти все вхождения искомого слова при помощи регулярного выражения? khusamov Общие вопросы Javascript 8 01.11.2015 23:39
Ограничить длину строки с помощью регулярного выражения pro_xaoc Элементы интерфейса 2 07.08.2011 15:58
Выделить целое слово на русском с помощью регулярного выражения! timdenice Общие вопросы Javascript 6 11.02.2010 12:59