Рейтинг:
1
Richard Deeming
Измените свой сценарий на:
$(function(){
$("#txtResult").click(function(){
var firstNo = $("#txtFirstNo").val(); // Cache this value, since you're using it multiple times
var arr = [];
if (firstNo.match(/^\d{5}$/)) {
arr.push("one");
arr.push("two"); // No need for a separate "if" branch with the same condition
}
else if (firstNo.match(/^\d{7}$/)) { // Use "else if", since the value can't match both patterns
arr.push("three");
}
$("#txtPrint").text(arr.join("\n"));
});
});
Установите стиль на выходном элементе таким образом, чтобы разрывы строк сохранялись.
<p id="txtPrint" style="white-space:pre-line;"></p>
Демонстрация[
^]
Member 14978380
Нет, у меня есть еще несколько шаблонов регулярных выражений, которые должны использоваться в условиях if, поэтому я хочу, чтобы если оба условия становятся истинными, то значение должно приходить в формате списка.
Member 14978380
Могу ли я получить вывод в формате списка, не меняя формат if ?
Richard Deeming
Получение вывода для отображения на нескольких строках включает в себя две вещи:
* С помощью arr.join("\n")
чтобы соединить значения массива с символом новой строки;
* Установка style="white-space:pre-line;"
на выходном элементе так, чтобы новые строки сохранялись.
Member 14978380
Но он не приходит в формате списка. Так есть ли другой вариант ?
И я использовал arr.join("\n") , но это не влияет на вывод.
Richard Deeming
Посмотрите еще раз на мою демонстрацию. Если это не тот формат вывода, который вам нужен, то вам нужно объяснить, что вы подразумеваете под "форматом списка".
Member 14978380
Я хочу получить результат в
один
два
скорее, чем
один-два
Richard Deeming
Еще раз: Посмотрите на мою демонстрацию.
То есть точно как отображается результат.
В чем же проблема?
Member 14978380
Что делать, если я использую два условия if ? Потому что в коде я пропустил шаблон регулярных выражений
Richard Deeming
Это не имеет значения. Если вы добавили несколько строк в массив, соедините его с новой строкой и установите white-space
на выходном элементе вы получите каждый элемент в новой строке.
Member 14978380
Я новичок в jQuery. Так что, пожалуйста, не могли бы вы дать мне exmaple ?
Richard Deeming
Я уже привел вам пример и объяснил его.
Демонстрация[^]
Member 14978380
У меня есть такие условия, так как же я могу использовать ваш метод : >
если ( библиотека jQuery("#txtFirstNo").функция val().матч(/^\Д{10}$/, ") || библиотека jQuery("#txtFirstNo").функция val().матч(/^[JJD01|JJD00|JVGL]+и\D{7}$/, "))
{
ОБР.толчок("один");
}
если ( библиотека jQuery("#txtFirstNo").функция val().матч(/^\д{10,39}$/, ") || библиотека jQuery("#txtFirstNo").функция val().матч(/^[ГМ|ЛК|приемник]+[0-9]{10,39}$/, ") )
{
ОБР.толчок("два");
}
Richard Deeming
Неужели? 🤦♂️
$(function(){
$("#txtResult").click(function(){
var arr = [];
if ( jQuery("#txtFirstNo").val().match(/^\d{10}$/, '') || jQuery("#txtFirstNo").val().match(/^[JJD01|JJD00|JVGL]+\d{7}$/, '')) {
arr.push("one");
}
if ( jQuery("#txtFirstNo").val().match(/^\d{10,39}$/, '') || jQuery("#txtFirstNo").val().match(/^[GM|LX|RX]+[0-9]{10,39}$/, '') ) {
arr.push("two");
}
$("#txtPrint").text(arr.join("\n"));
});
});
Обновленная Демо-Версия[
^]
Member 14978380
Большое вам спасибо за вашу помощь...
:)