Как сопоставить и вернуть текст до знака вопроса с помощью регулярных выражений? - PullRequest
0 голосов
/ 27 апреля 2020

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

Я застрял здесь: title = metas.replace (/(^.*)?\?/, "$ 1");

Вот пример текста: «Как вас зовут? Меня зовут Джон»

Ожидаемое возвращение: Как вас зовут?

Пожалуйста, помогите: |

Ответы [ 4 ]

1 голос
/ 27 апреля 2020

Вы можете попробовать это

var str="What is your name? my name is John";

var substr=str.replace(/\?.*$/,"")+ "?";
console.log(substr);
0 голосов
/ 27 апреля 2020

startString="What is your name?test question? my name is John";
finString = startString.match(/^[^\?]*\?/)[0];
console.log(finString);
0 голосов
/ 27 апреля 2020

Ваша скобка должна включать 1) все , а не символ вопросительного знака, от 0 до много раз [^\?]* и 2) символ вопросительного знака, чтобы использовать строковый параметр для получения желаемые результаты. Так что это будет работать:

title = metas.replace(/([^\?]*\?)/, "$1");
0 голосов
/ 27 апреля 2020

Вы можете сделать это, используя разделение

title = metas.split("?")[0] + "?";
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...