У меня есть текст, и я хочу выполнить поиск в тексте, найти слово, а затем вернуть числа после этого слова

Например :

this is a signal , entry : 2430 and side is short

Я хочу найти въезд и вернуть 2430

Как я могу справиться с этим?

0
dumpAndDie 10 Окт 2021 в 00:53

4 ответа

Лучший ответ

Просто используйте простое регулярное выражение:

const input = 'this is a signal , entry : 2430 and side is short'; 

const number1 = input.match(/entry\W+(\d+)/)?.[1]; // "2430"

const number2 = input.match(/santa\W+(\d+)/)?.[1]; // undefined
1
Robo Robok 9 Окт 2021 в 22:21

Чтобы найти (место) слова и совпадают < / a> (числа после этого слова) методы для Strings для достижения этой цели.

Ниже приведен пример достижения вашей цели; однако, если вы не знакомы с Regex, Предлагаю вам узнать об этом побольше.

const myString = "this is a signal , entry : 2430 and side is short";
const wordStartingIndex = myString.indexOf('entry :'); // this will give you the index of your word.
const index = wordStartingIndex + 7; // since your word string has 7 characters.
const slicedString = myString.slice(index); // gives you the string part after the "word";
const numberMatch = slicedString.match(/\d+/); // gives you the first match.

Поскольку вы запрашиваете "числа", вы можете использовать регулярное выражение /\d+/g для вашего соответствия. Тег g будет искать в вашей строке глобально и предоставит вам массив совпадений.

0
severhasan 9 Окт 2021 в 22:17

Вы также можете сделать это с помощью indexOf и регулярное выражение

const word = "entry";
const str = "this is a signal , entry : 2430 and side is short";

const index = str.indexOf(word);

if (index !== -1) {
  let result = str.slice(index + word.length).match(/\d+/)[0];
  console.log(result);
}
0
decpk 9 Окт 2021 в 22:18

Если вы хотите, чтобы это было в 1 строке:

text = 'this is a signal , entry : 2430 and side is short';
x = text.split('entry : ')[1].split(' ')[0]; // 2430
0
Vrienden van Andries 10 Окт 2021 в 12:10