JavaScript: строка соответствия с заполнителями - PullRequest
0 голосов
/ 05 ноября 2018

Я хочу проверить, совпадает ли моя строка «Здравствуйте, меня зовут Томас» со строкой «Здравствуйте, меня зовут $». Поэтому для меня должно быть верно следующее утверждение:

"Hello my name is Thomas" == "Hello my name is $"

потом я хочу извлечь строку $ что-то вроде

function getParam(text, template) {
  returns "Thomas"
}

Есть ли у вас какие-либо предложения?

1 Ответ

0 голосов
/ 05 ноября 2018

Вы можете создать регулярное выражение, а затем получить данные, используя Regex.exec

const regex = /Hello my name is (.*)/;

const ret = regex.exec('Hello my name is thomas');

console.log(ret[1]);

При использовании регулярных выражений вы можете использовать https://regex101.com/., это поможет вам понять, что вы делаете.

Пример в вашем случае:

enter image description here



function extractName(str) {
  const ret = /Hello my name is (.*)/.exec(str);

  return (ret && ret[1].trim()) || null;
}

const name = extractName('Hello my name is thomas');

const nameWithSpace = extractName('Hello my name is    thomas    ');

const fail = extractName('failure');

console.log(name);
console.log(nameWithSpace);
console.log(fail);
...