Извлечение определенного текста из области текста между двумя словами с помощью jquery

#javascript #jquery

Вопрос:

Мне нужен простой код jquery, который может выводить текст, написанный между «Ссылочным кодом:» и «Минералом». Таким образом, выходной текст должен быть «12345 asdf». Пожалуйста, взгляните на мой код, который может выводить весь текст после «Справочного кода:», но он не работает, выводя только «Минеральное» слово.

 <script src="https://ajax.googleapis.com/ajax/libs/jquery/3.5.1/jquery.min.js"></script>

<textarea class='txt' id='txt'>
Name and formula
Reference code: 12345
asdf
Mineral name:   Periclase
</textarea>

<h3 id="firstLine"></h3>

<script>
var lines = $('#txt').val().split('code:');
    var outPut=lines[1];
    $("#firstLine").html(outPut)
</script> 

Ответ №1:

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

Разрушение

 /code:s         // starts with literal code: and whitespace, here a tab
([a-zA-Z0-9-] )  // capture alphabetics, digits and dash
s ?Mineral/     // until the literal Mineral with a possible leading whitespace  
 

ПРИМЕЧАНИЕ. область текста содержит новые строки и вкладки

 <script src="https://ajax.googleapis.com/ajax/libs/jquery/3.5.1/jquery.min.js"></script>

<textarea class='txt' id='txt'>
Name and formula

Reference code: 0N-NNN-YYYY 

Mineral name:   Periclase 
Compound name:  Magnesium Oxide 
</textarea>

<h3 id="firstLine"></h3>

<script>
const code = $('#txt').val().match(/code:s ([a-zA-Z0-9-] )s ?Mineral/m);
    $("#firstLine").html(code ? code[1] : "not found")
</script> 

Комментарии:

1. Спасибо за ваш ответ, сэр, но если значение textarea равно «Код ссылки: 12345 привет», даже в этом случае выводится только 12345. Я хочу знать, сколько слов в строке, если это минеральное слово, то оно должно содержать все эти слова строк.

2. сэр, я немного обновил свой вопрос, добавил «asdf» в следующей строке. поэтому он должен вывести «12345 asdf».

3. Сэр, в этом есть еще одна проблема, если я заменю «код:» на «формулу», то она должна показывать «Справочный код: 12345, что угодно». или, если я заменю «код:» на «Ссылку», тогда должно появиться «код: 12345, что угодно». Но это работает не так.

4. Я думаю, что это не видно из-за особого характера. но я не знаю, как добавить это в это

5. Покажите, пожалуйста, фактические данные, тогда я смогу посмотреть