2015-08-11 2 views
0

У меня есть строка регулярных выражений, которая соответствует определенной части строки, которая мне нужна, как видно here.Как вернуть часть строки javascript, которая соответствует регулярному выражению?

/[^\/,\s\?#]+?\.[^\/,\s]+?(?=\/|\s|$|\?|#)/g 

Я хочу использовать это регулярное выражение в JavaScript, чтобы лишить части строки, которые не соответствуют регулярному выражению, а затем сохранить результат в переменной. Я просто не могу найти способ сделать это!

Единственными функциями регулярного выражения, которые я нашел в JS, являются compile(), exec(), test() и toString(). Ничто из этого не соответствует моим потребностям. Как я могу это сделать?

Благодаря

+0

Что случилось с 'string.match'? –

+0

Итак, если я правильно понял, вы хотите удалить согласованную часть строки из исходной строки ** и ** хранить, что приведет к переменной? –

+0

, который возвращает логическое значение, я хочу вернуть фактическую строку – kabeersvohra

ответ

3

Использование string.match функция возвращает все совпавшие символы в качестве элементов массива.

string.match(/[^\/,\s\?#]+?\.[^\/,\s]+?(?=\/|\s|$|\?|#)/g) 

Если вы хотите удалить совпадающую часть затем использовать string.replace

var s = string.replace(/[^\/,\s\?#]+?\.[^\/,\s]+?(?=\/|\s|$|\?|#)/g, "") 
+0

Почему нисходящий? –

+0

для записи Я не сделал ниспроверки, однако, похоже, это не работает для меня. Я пытаюсь именно здесь: -https: //jsfiddle.net/gvkd0jfy/, но ничего не отображается – kabeersvohra

+0

см. Https://jsfiddle.net/gvkd0jfy/3/, не помещайте '/' внутри кавычек. –

1

способ сделать это было бы использовать функцию string.match(), как показано здесь на Mozilla Developer Page.

Итак, ваш вызов функции будет выглядеть

string.match(/[^\/,\s\?#]+?\.[^\/,\s]+?(?=\/|\s|$|\?|#)/g)

Если вы планируете отбрасывая все, что не соответствует, то вы могли бы использовать

string.replace(/[^\/,\s\?#]+?\.[^\/,\s]+?(?=\/|\s|$|\?|#)/g, ''), как видно here, а затем магазин это в другую переменную.