#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. Покажите, пожалуйста, фактические данные, тогда я смогу посмотреть