Hướng dẫn javascript loop select options - vòng lặp javascript lựa chọn các tùy chọn

Tôi có một tùy chọn chọn như thế này:

Nội dung chính ShowShow

  • Tạo một biểu thức chính quy
  • Viết một mẫu biểu thức chính quy
  • Sử dụng các mẫu đơn giản
  • Sử dụng các ký tự đặc biệt
  • Trốn thoát
  • Sử dụng dấu ngoặc đơn
  • Sử dụng các biểu thức chính quy trong JavaScript
  • Tìm kiếm nâng cao với cờ
  • Sử dụng các ký tự đặc biệt để xác minh đầu vào


Bây giờ để trả về giá trị của điều này với jQuery, tôi đã làm điều này:

$(".select-2").change(function() {
      var val = $(".select-2").val();
      console.log(val);
});

Nó hoạt động tốt và hiển thị đúng giá trị của mục được chọn.

Nhưng tôi muốn làm cho điều này năng động hơn bằng cách sử dụng một vòng lặp cho vòng lặp:

var counters = 2;

for(i=2;i<=counters;i++){
   $(".select-"+i).change(function() {
      var val = $(".select-"+i).val();
      console.log(val);
   });
}

Vì vậy, nó nên chọn giá trị lớp

var counters = 2;

for(i=2;i<=counters;i++){
   $(".select-"+i).change(function() {
      var val = $(".select-"+i).val();
      console.log(val);
   });
}
1 và trả về nó là
var counters = 2;

for(i=2;i<=counters;i++){
   $(".select-"+i).change(function() {
      var val = $(".select-"+i).val();
      console.log(val);
   });
}
2.

Nhưng nó in không xác định bằng cách nào đó.undefined somehow.undefined somehow.

Vậy điều gì đang xảy ra ở đây? Làm thế nào tôi có thể giải quyết vấn đề này?

Sử dụng các trường hợp của đoạn mã này

  • Biết cách lặp lại thông qua tất cả các tùy chọn của một yếu tố. Nhận nhãn và giá trị của mỗi tùy chọn. Tìm tùy chọn có được chọn hay không.

Các tùy chọn của một phần tử có thể được lặp qua thuộc tính "tùy chọn" của nó. Thuộc tính này đưa ra một danh sách tất cả các yếu tố bên trong nó.

HTML


JavaScript

Array.from(document.querySelector("#colors-dropdown").options).forEach(function(option_element) {
    let option_text = option_element.text;
    let option_value = option_element.value;
    let is_option_selected = option_element.selected;

    console.log('Option Text : ' + option_text);
    console.log('Option Value : ' + option_value);
    console.log('Option Selected : ' + (is_option_selected === true ? 'Yes' : 'No'));

    console.log("\n\r");
});

Kết quả

REGEXR

Một công cụ trực tuyến để tìm hiểu, xây dựng và kiểm tra các biểu thức thường xuyên.

  • REGEX TESTER : The options property of the : The options property of the
  • Nhận nhãn và giá trị của một phần tử tùy chọn: Thuộc tính văn bản của một phần tử cung cấp nhãn của tùy chọn. Thuộc tính giá trị cho giá trị của tùy chọn. : The text property of an : The text property of an
  • Tìm các tùy chọn được chọn hay không: Thuộc tính đã chọn của tùy chọn cho boolean đúng hay sai tùy thuộc vào việc tùy chọn có được chọn hay không. Điều này cũng giữ cho thả xuống đa chọn là tốt. : The selected property of an option gives a boolean true or false depending on whether the option is selected or not. This holds for multi-select dropdown as well. : The selected property of an option gives a boolean true or false depending on whether the option is selected or not. This holds for multi-select dropdown as well.
  • Tại sao Array.From () được sử dụng? : Thuộc tính tùy chọn của phần tử chọn trả về một htmlcollection của tất cả các tùy chọn (giống như mảng, nhưng không phải là một mảng). Để lặp lại điều này, chúng ta cần chuyển đổi đối tượng giống như mảng này thành một mảng JavaScript bình thường bằng Array.From (). : The options property of select element returns a HTMLCollection of all options (array-like, but not an array). To iterate over this, we need to convert this array-like object to a normal Javascript array using Array.from(). : The options property of select element returns a HTMLCollection of all options (array-like, but not an array). To iterate over this, we need to convert this array-like object to a normal Javascript array using Array.from().
  • " Trước
  • Tiếp theo "

Biểu thức chính quy là các mẫu được sử dụng để phù hợp với kết hợp ký tự trong chuỗi. Trong JavaScript, các biểu thức chính quy cũng là đối tượng. Các mẫu này được sử dụng với các phương pháp

var counters = 2;

for(i=2;i<=counters;i++){
   $(".select-"+i).change(function() {
      var val = $(".select-"+i).val();
      console.log(val);
   });
}
3 và
var counters = 2;

for(i=2;i<=counters;i++){
   $(".select-"+i).change(function() {
      var val = $(".select-"+i).val();
      console.log(val);
   });
}
4 của
var counters = 2;

for(i=2;i<=counters;i++){
   $(".select-"+i).change(function() {
      var val = $(".select-"+i).val();
      console.log(val);
   });
}
5 và với
var counters = 2;

for(i=2;i<=counters;i++){
   $(".select-"+i).change(function() {
      var val = $(".select-"+i).val();
      console.log(val);
   });
}
6,
var counters = 2;

for(i=2;i<=counters;i++){
   $(".select-"+i).change(function() {
      var val = $(".select-"+i).val();
      console.log(val);
   });
}
7,
var counters = 2;

for(i=2;i<=counters;i++){
   $(".select-"+i).change(function() {
      var val = $(".select-"+i).val();
      console.log(val);
   });
}
8,
var counters = 2;

for(i=2;i<=counters;i++){
   $(".select-"+i).change(function() {
      var val = $(".select-"+i).val();
      console.log(val);
   });
}
9,

0 và

1 của

2. Chương này mô tả các biểu thức thường xuyên của JavaScript.

Tạo một biểu thức chính quy

Bạn xây dựng một biểu thức chính quy theo một trong hai cách:

  • Sử dụng một biểu thức thông thường theo nghĩa đen, bao gồm một mẫu được bao quanh giữa các dấu gạch chéo, như sau: Biểu thức thông thường theo nghĩa đen cung cấp tổng hợp biểu thức chính quy khi tập lệnh được tải. Nếu biểu thức chính quy không đổi, sử dụng điều này có thể cải thiện hiệu suất.
  • Hoặc gọi hàm hàm tạo của đối tượng
    var counters = 2;
    
    for(i=2;i<=counters;i++){
       $(".select-"+i).change(function() {
          var val = $(".select-"+i).val();
          console.log(val);
       });
    }
    
    5, như sau:
    $(".select-2").change(function() {
          var val = $(".select-2").val();
          console.log(val);
    });
    
    8Sử dụng hàm Constructor cung cấp biên dịch thời gian chạy của biểu thức chính quy. Sử dụng chức năng Constructor khi bạn biết mẫu biểu thức chính quy sẽ thay đổi hoặc bạn không biết mẫu và đang lấy nó từ một nguồn khác, chẳng hạn như đầu vào của người dùng.

Viết một mẫu biểu thức chính quy

Một mẫu biểu thức chính quy bao gồm các ký tự đơn giản, chẳng hạn như


4 hoặc kết hợp các ký tự đơn giản và đặc biệt, chẳng hạn như

5 hoặc

6. Ví dụ cuối cùng bao gồm dấu ngoặc đơn, được sử dụng làm thiết bị bộ nhớ. Trận đấu được thực hiện với phần này của mẫu được ghi nhớ để sử dụng sau, như được mô tả trong các nhóm sử dụng.

Lưu ý: Nếu bạn đã quen thuộc với các hình thức của một biểu thức thông thường, bạn cũng có thể đọc tờ Cheatese để tìm kiếm nhanh chóng cho một mẫu/cấu trúc cụ thể. If you are already familiar with the forms of a regular expression, you may also read the cheatsheet for a quick lookup for a specific pattern/construct. If you are already familiar with the forms of a regular expression, you may also read the cheatsheet for a quick lookup for a specific pattern/construct.

Sử dụng các mẫu đơn giản

Các mẫu đơn giản được xây dựng từ các ký tự mà bạn muốn tìm một trận đấu trực tiếp. Ví dụ, mẫu


4 chỉ khớp với các kết hợp ký tự trong các chuỗi chỉ khi chuỗi chính xác

8 xảy ra (tất cả các ký tự với nhau và theo thứ tự đó). Một trận đấu như vậy sẽ thành công trong chuỗi

9 và
Array.from(document.querySelector("#colors-dropdown").options).forEach(function(option_element) {
    let option_text = option_element.text;
    let option_value = option_element.value;
    let is_option_selected = option_element.selected;

    console.log('Option Text : ' + option_text);
    console.log('Option Value : ' + option_value);
    console.log('Option Selected : ' + (is_option_selected === true ? 'Yes' : 'No'));

    console.log("\n\r");
});
0. Trong cả hai trường hợp, trận đấu là với chuỗi con

8. Không có khớp trong chuỗi
Array.from(document.querySelector("#colors-dropdown").options).forEach(function(option_element) {
    let option_text = option_element.text;
    let option_value = option_element.value;
    let is_option_selected = option_element.selected;

    console.log('Option Text : ' + option_text);
    console.log('Option Value : ' + option_value);
    console.log('Option Selected : ' + (is_option_selected === true ? 'Yes' : 'No'));

    console.log("\n\r");
});
2 bởi vì trong khi nó chứa chuỗi con
Array.from(document.querySelector("#colors-dropdown").options).forEach(function(option_element) {
    let option_text = option_element.text;
    let option_value = option_element.value;
    let is_option_selected = option_element.selected;

    console.log('Option Text : ' + option_text);
    console.log('Option Value : ' + option_value);
    console.log('Option Selected : ' + (is_option_selected === true ? 'Yes' : 'No'));

    console.log("\n\r");
});
3, nó không chứa nền tảng chính xác

8.

Sử dụng các ký tự đặc biệt

Khi tìm kiếm một trận đấu đòi hỏi một cái gì đó nhiều hơn một trận đấu trực tiếp, chẳng hạn như tìm một hoặc nhiều B hoặc tìm không gian trắng, bạn có thể bao gồm các ký tự đặc biệt trong mẫu. Ví dụ: để khớp với một

Array.from(document.querySelector("#colors-dropdown").options).forEach(function(option_element) {
    let option_text = option_element.text;
    let option_value = option_element.value;
    let is_option_selected = option_element.selected;

    console.log('Option Text : ' + option_text);
    console.log('Option Value : ' + option_value);
    console.log('Option Selected : ' + (is_option_selected === true ? 'Yes' : 'No'));

    console.log("\n\r");
});
5 theo sau là 0 hoặc nhiều
Array.from(document.querySelector("#colors-dropdown").options).forEach(function(option_element) {
    let option_text = option_element.text;
    let option_value = option_element.value;
    let is_option_selected = option_element.selected;

    console.log('Option Text : ' + option_text);
    console.log('Option Value : ' + option_value);
    console.log('Option Selected : ' + (is_option_selected === true ? 'Yes' : 'No'));

    console.log("\n\r");
});
6 sau đó là
Array.from(document.querySelector("#colors-dropdown").options).forEach(function(option_element) {
    let option_text = option_element.text;
    let option_value = option_element.value;
    let is_option_selected = option_element.selected;

    console.log('Option Text : ' + option_text);
    console.log('Option Value : ' + option_value);
    console.log('Option Selected : ' + (is_option_selected === true ? 'Yes' : 'No'));

    console.log("\n\r");
});
7, bạn sẽ sử dụng mẫu

5:
Array.from(document.querySelector("#colors-dropdown").options).forEach(function(option_element) {
    let option_text = option_element.text;
    let option_value = option_element.value;
    let is_option_selected = option_element.selected;

    console.log('Option Text : ' + option_text);
    console.log('Option Value : ' + option_value);
    console.log('Option Selected : ' + (is_option_selected === true ? 'Yes' : 'No'));

    console.log("\n\r");
});
9 sau
Array.from(document.querySelector("#colors-dropdown").options).forEach(function(option_element) {
    let option_text = option_element.text;
    let option_value = option_element.value;
    let is_option_selected = option_element.selected;

    console.log('Option Text : ' + option_text);
    console.log('Option Value : ' + option_value);
    console.log('Option Selected : ' + (is_option_selected === true ? 'Yes' : 'No'));

    console.log("\n\r");
});
6 có nghĩa là "0 hoặc nhiều hơn các mục trước của mục trước." Trong chuỗi
var counters = 2;

for(i=2;i<=counters;i++){
   $(".select-"+i).change(function() {
      var val = $(".select-"+i).val();
      console.log(val);
   });
}
61, mẫu này sẽ khớp với bộ nền
var counters = 2;

for(i=2;i<=counters;i++){
   $(".select-"+i).change(function() {
      var val = $(".select-"+i).val();
      console.log(val);
   });
}
62.

Các trang sau cung cấp danh sách các ký tự đặc biệt khác nhau phù hợp với từng danh mục, cùng với các mô tả và ví dụ.

Xác nhận

Các xác nhận bao gồm các ranh giới, chỉ ra sự khởi đầu và kết thúc của các dòng và từ, và các mẫu khác chỉ ra theo một cách nào đó mà một trận đấu là có thể (bao gồm cả hướng trước, nhìn về phía sau và các biểu thức có điều kiện).

Các lớp nhân vật

Phân biệt các loại ký tự khác nhau. Ví dụ, phân biệt giữa các chữ cái và chữ số.

Nhóm và backreferences

Nhóm nhóm nhiều mẫu nói chung và các nhóm thu thập cung cấp thêm thông tin bài hát khi sử dụng mẫu biểu thức chính quy để khớp với chuỗi. BackReferences đề cập đến một nhóm đã bị bắt trước đó trong cùng một biểu thức chính quy.

Định lượng

Chỉ ra số lượng ký tự hoặc biểu thức để khớp.

Tài sản Unicode thoát ra

Phân biệt dựa trên các thuộc tính ký tự unicode, ví dụ, các chữ cái trên và chữ cái, ký hiệu toán học và dấu câu.

Nếu bạn muốn xem tất cả các ký tự đặc biệt có thể được sử dụng trong các biểu thức thông thường trong một bảng, hãy xem phần sau:

Trốn thoát

Nếu bạn cần sử dụng bất kỳ ký tự đặc biệt nào theo nghĩa đen (ví dụ thực sự tìm kiếm

var counters = 2;

for(i=2;i<=counters;i++){
   $(".select-"+i).change(function() {
      var val = $(".select-"+i).val();
      console.log(val);
   });
}
63), bạn phải thoát khỏi nó bằng cách đặt dấu gạch chéo ngược trước nó. Chẳng hạn, để tìm kiếm
Array.from(document.querySelector("#colors-dropdown").options).forEach(function(option_element) {
    let option_text = option_element.text;
    let option_value = option_element.value;
    let is_option_selected = option_element.selected;

    console.log('Option Text : ' + option_text);
    console.log('Option Value : ' + option_value);
    console.log('Option Selected : ' + (is_option_selected === true ? 'Yes' : 'No'));

    console.log("\n\r");
});
5, sau đó là
var counters = 2;

for(i=2;i<=counters;i++){
   $(".select-"+i).change(function() {
      var val = $(".select-"+i).val();
      console.log(val);
   });
}
63 sau đó là
Array.from(document.querySelector("#colors-dropdown").options).forEach(function(option_element) {
    let option_text = option_element.text;
    let option_value = option_element.value;
    let is_option_selected = option_element.selected;

    console.log('Option Text : ' + option_text);
    console.log('Option Value : ' + option_value);
    console.log('Option Selected : ' + (is_option_selected === true ? 'Yes' : 'No'));

    console.log("\n\r");
});
6, bạn sẽ sử dụng
var counters = 2;

for(i=2;i<=counters;i++){
   $(".select-"+i).change(function() {
      var val = $(".select-"+i).val();
      console.log(val);
   });
}
67 - dấu gạch chéo ngược "thoát ra"
var counters = 2;

for(i=2;i<=counters;i++){
   $(".select-"+i).change(function() {
      var val = $(".select-"+i).val();
      console.log(val);
   });
}
63, làm cho nó theo nghĩa đen thay vì đặc biệt.

Tương tự, nếu bạn đang viết một biểu thức thông thường theo nghĩa đen và cần phải kết hợp một dấu gạch chéo ("/"), bạn cần thoát khỏi điều đó (nếu không, nó sẽ chấm dứt mẫu). Chẳng hạn, để tìm kiếm chuỗi "/ví dụ/" Theo sau là một hoặc nhiều ký tự chữ cái, bạn sẽ sử dụng ____ 59, các dấu gạch chéo ngược trước mỗi lần cắt làm cho chúng theo nghĩa đen.

Để phù hợp với một dấu gạch chéo ngược theo nghĩa đen, bạn cần thoát khỏi dấu gạch chéo ngược. Chẳng hạn, để khớp với chuỗi "C: \" trong đó "C" có thể là bất kỳ chữ cái nào, bạn sẽ sử dụng

$(".select-2").change(function() {
      var val = $(".select-2").val();
      console.log(val);
});
80 - dấu gạch chéo ngược đầu tiên thoát khỏi chữ cái sau đó, do đó, biểu thức tìm kiếm một dấu gạch chéo ngược.

Nếu sử dụng hàm tạo

var counters = 2;

for(i=2;i<=counters;i++){
   $(".select-"+i).change(function() {
      var val = $(".select-"+i).val();
      console.log(val);
   });
}
5 với một chuỗi theo nghĩa đen, hãy nhớ rằng dấu gạch chéo ngược là một lối thoát trong các chuỗi chữ, vì vậy để sử dụng nó trong biểu thức thông thường, bạn cần thoát nó ở cấp độ theo nghĩa đen.
var counters = 2;

for(i=2;i<=counters;i++){
   $(".select-"+i).change(function() {
      var val = $(".select-"+i).val();
      console.log(val);
   });
}
67 và
$(".select-2").change(function() {
      var val = $(".select-2").val();
      console.log(val);
});
83 tạo ra cùng một biểu thức, tìm kiếm "A" theo nghĩa đen "*" theo sau là "B".

Nếu chuỗi thoát chưa phải là một phần trong mẫu của bạn, bạn có thể thêm chúng bằng cách sử dụng

$(".select-2").change(function() {
      var val = $(".select-2").val();
      console.log(val);
});
84:
var counters = 2;

for(i=2;i<=counters;i++){
   $(".select-"+i).change(function() {
      var val = $(".select-"+i).val();
      console.log(val);
   });
}
9

"G" sau khi biểu thức thông thường là một tùy chọn hoặc cờ thực hiện tìm kiếm toàn cầu, nhìn vào toàn bộ chuỗi và trả về tất cả các trận đấu. Nó được giải thích chi tiết dưới đây trong tìm kiếm nâng cao với cờ.

Tại sao điều này không được xây dựng trong JavaScript? Có một đề xuất để thêm một chức năng như vậy vào regexp.

Sử dụng dấu ngoặc đơn

Điểm dừng xung quanh bất kỳ phần nào của mẫu biểu thức chính quy gây ra một phần của chuỗi con phù hợp được ghi nhớ. Sau khi nhớ, phần phụ có thể được thu hồi cho việc sử dụng khác. Xem các nhóm và backrefer để biết thêm chi tiết.

Sử dụng các biểu thức chính quy trong JavaScript

Các biểu thức chính quy được sử dụng với các phương pháp

var counters = 2;

for(i=2;i<=counters;i++){
   $(".select-"+i).change(function() {
      var val = $(".select-"+i).val();
      console.log(val);
   });
}
5
var counters = 2;

for(i=2;i<=counters;i++){
   $(".select-"+i).change(function() {
      var val = $(".select-"+i).val();
      console.log(val);
   });
}
4 và
var counters = 2;

for(i=2;i<=counters;i++){
   $(".select-"+i).change(function() {
      var val = $(".select-"+i).val();
      console.log(val);
   });
}
3 và với các phương pháp

2
var counters = 2;

for(i=2;i<=counters;i++){
   $(".select-"+i).change(function() {
      var val = $(".select-"+i).val();
      console.log(val);
   });
}
6,
var counters = 2;

for(i=2;i<=counters;i++){
   $(".select-"+i).change(function() {
      var val = $(".select-"+i).val();
      console.log(val);
   });
}
8,

0 và

1.

Khi bạn muốn biết liệu một mẫu được tìm thấy trong một chuỗi, hãy sử dụng các phương thức

var counters = 2;

for(i=2;i<=counters;i++){
   $(".select-"+i).change(function() {
      var val = $(".select-"+i).val();
      console.log(val);
   });
}
4 hoặc

0; Để biết thêm thông tin (nhưng thực hiện chậm hơn) sử dụng các phương thức
var counters = 2;

for(i=2;i<=counters;i++){
   $(".select-"+i).change(function() {
      var val = $(".select-"+i).val();
      console.log(val);
   });
}
3 hoặc
var counters = 2;

for(i=2;i<=counters;i++){
   $(".select-"+i).change(function() {
      var val = $(".select-"+i).val();
      console.log(val);
   });
}
6. Nếu bạn sử dụng
var counters = 2;

for(i=2;i<=counters;i++){
   $(".select-"+i).change(function() {
      var val = $(".select-"+i).val();
      console.log(val);
   });
}
3 hoặc
var counters = 2;

for(i=2;i<=counters;i++){
   $(".select-"+i).change(function() {
      var val = $(".select-"+i).val();
      console.log(val);
   });
}
6 và nếu trận đấu thành công, các phương thức này sẽ trả về một mảng và các thuộc tính cập nhật của đối tượng biểu thức chính quy được liên kết và cả đối tượng biểu thức chính quy được xác định trước,
var counters = 2;

for(i=2;i<=counters;i++){
   $(".select-"+i).change(function() {
      var val = $(".select-"+i).val();
      console.log(val);
   });
}
5. Nếu trận đấu không thành công, phương thức
var counters = 2;

for(i=2;i<=counters;i++){
   $(".select-"+i).change(function() {
      var val = $(".select-"+i).val();
      console.log(val);
   });
}
3 trả về
Array.from(document.querySelector("#colors-dropdown").options).forEach(function(option_element) {
    let option_text = option_element.text;
    let option_value = option_element.value;
    let is_option_selected = option_element.selected;

    console.log('Option Text : ' + option_text);
    console.log('Option Value : ' + option_value);
    console.log('Option Selected : ' + (is_option_selected === true ? 'Yes' : 'No'));

    console.log("\n\r");
});
61 (ép buộc thành
Array.from(document.querySelector("#colors-dropdown").options).forEach(function(option_element) {
    let option_text = option_element.text;
    let option_value = option_element.value;
    let is_option_selected = option_element.selected;

    console.log('Option Text : ' + option_text);
    console.log('Option Value : ' + option_value);
    console.log('Option Selected : ' + (is_option_selected === true ? 'Yes' : 'No'));

    console.log("\n\r");
});
62).

Trong ví dụ sau, tập lệnh sử dụng phương thức

var counters = 2;

for(i=2;i<=counters;i++){
   $(".select-"+i).change(function() {
      var val = $(".select-"+i).val();
      console.log(val);
   });
}
3 để tìm kết hợp trong một chuỗi.
Array.from(document.querySelector("#colors-dropdown").options).forEach(function(option_element) {
    let option_text = option_element.text;
    let option_value = option_element.value;
    let is_option_selected = option_element.selected;

    console.log('Option Text : ' + option_text);
    console.log('Option Value : ' + option_value);
    console.log('Option Selected : ' + (is_option_selected === true ? 'Yes' : 'No'));

    console.log("\n\r");
});
6

Nếu bạn không cần truy cập các thuộc tính của biểu thức thông thường, một cách khác để tạo

Array.from(document.querySelector("#colors-dropdown").options).forEach(function(option_element) {
    let option_text = option_element.text;
    let option_value = option_element.value;
    let is_option_selected = option_element.selected;

    console.log('Option Text : ' + option_text);
    console.log('Option Value : ' + option_value);
    console.log('Option Selected : ' + (is_option_selected === true ? 'Yes' : 'No'));

    console.log("\n\r");
});
64 là với tập lệnh này:
var counters = 2;

for(i=2;i<=counters;i++){
   $(".select-"+i).change(function() {
      var val = $(".select-"+i).val();
      console.log(val);
   });
}
1

(Xem bằng cách sử dụng cờ tìm kiếm toàn cầu với

var counters = 2;

for(i=2;i<=counters;i++){
   $(".select-"+i).change(function() {
      var val = $(".select-"+i).val();
      console.log(val);
   });
}
3 để biết thêm thông tin về các hành vi khác nhau.)

Nếu bạn muốn xây dựng biểu thức thông thường từ một chuỗi, nhưng một giải pháp khác là tập lệnh này:

$(".select-2").change(function() {
      var val = $(".select-2").val();
      console.log(val);
});
0

Với các tập lệnh này, trận đấu thành công và trả về mảng và cập nhật các thuộc tính được hiển thị trong bảng sau.

Như được hiển thị trong dạng thứ hai của ví dụ này, bạn có thể sử dụng một biểu thức chính quy được tạo bằng trình khởi tạo đối tượng mà không cần gán nó cho một biến. Tuy nhiên, nếu bạn làm, mọi sự xuất hiện là một biểu thức chính quy mới. Vì lý do này, nếu bạn sử dụng biểu mẫu này mà không gán nó cho một biến, sau đó bạn không thể truy cập các thuộc tính của biểu thức thông thường đó. Ví dụ: giả sử bạn có tập lệnh này:

$(".select-2").change(function() {
      var val = $(".select-2").val();
      console.log(val);
});
1

Tuy nhiên, nếu bạn có tập lệnh này:

$(".select-2").change(function() {
      var val = $(".select-2").val();
      console.log(val);
});
2

Sự xuất hiện của

Array.from(document.querySelector("#colors-dropdown").options).forEach(function(option_element) {
    let option_text = option_element.text;
    let option_value = option_element.value;
    let is_option_selected = option_element.selected;

    console.log('Option Text : ' + option_text);
    console.log('Option Value : ' + option_value);
    console.log('Option Selected : ' + (is_option_selected === true ? 'Yes' : 'No'));

    console.log("\n\r");
});
66 trong hai câu lệnh là các đối tượng biểu thức chính quy khác nhau và do đó có các giá trị khác nhau cho thuộc tính
Array.from(document.querySelector("#colors-dropdown").options).forEach(function(option_element) {
    let option_text = option_element.text;
    let option_value = option_element.value;
    let is_option_selected = option_element.selected;

    console.log('Option Text : ' + option_text);
    console.log('Option Value : ' + option_value);
    console.log('Option Selected : ' + (is_option_selected === true ? 'Yes' : 'No'));

    console.log("\n\r");
});
67 của chúng. Nếu bạn cần truy cập các thuộc tính của biểu thức chính quy được tạo bằng trình khởi tạo đối tượng, trước tiên bạn nên gán nó cho một biến.

Tìm kiếm nâng cao với cờ

Biểu thức chính quy có các cờ tùy chọn cho phép chức năng như tìm kiếm toàn cầu và tìm kiếm không nhạy cảm trường hợp. Những lá cờ này có thể được sử dụng riêng biệt hoặc cùng nhau theo bất kỳ thứ tự nào, và được bao gồm như một phần của biểu thức thông thường.

Để bao gồm một lá cờ có biểu thức thông thường, hãy sử dụng cú pháp này:

$(".select-2").change(function() {
      var val = $(".select-2").val();
      console.log(val);
});
3

hoặc

$(".select-2").change(function() {
      var val = $(".select-2").val();
      console.log(val);
});
4

Lưu ý rằng các cờ là một phần không thể thiếu của biểu thức chính quy. Họ không thể được thêm hoặc loại bỏ sau này.

Ví dụ,

Array.from(document.querySelector("#colors-dropdown").options).forEach(function(option_element) {
    let option_text = option_element.text;
    let option_value = option_element.value;
    let is_option_selected = option_element.selected;

    console.log('Option Text : ' + option_text);
    console.log('Option Value : ' + option_value);
    console.log('Option Selected : ' + (is_option_selected === true ? 'Yes' : 'No'));

    console.log("\n\r");
});
68 tạo ra một biểu thức chính quy tìm kiếm một hoặc nhiều ký tự theo sau là một không gian và nó tìm kiếm sự kết hợp này trong suốt chuỗi.
$(".select-2").change(function() {
      var val = $(".select-2").val();
      console.log(val);
});
5

Bạn có thể thay thế dòng:

with:

$(".select-2").change(function() {
      var val = $(".select-2").val();
      console.log(val);
});
6

và nhận được kết quả tương tự.

Cờ

Array.from(document.querySelector("#colors-dropdown").options).forEach(function(option_element) {
    let option_text = option_element.text;
    let option_value = option_element.value;
    let is_option_selected = option_element.selected;

    console.log('Option Text : ' + option_text);
    console.log('Option Value : ' + option_value);
    console.log('Option Selected : ' + (is_option_selected === true ? 'Yes' : 'No'));

    console.log("\n\r");
});
69 được sử dụng để chỉ định rằng một chuỗi đầu vào đa dòng nên được coi là nhiều dòng. Nếu cờ
Array.from(document.querySelector("#colors-dropdown").options).forEach(function(option_element) {
    let option_text = option_element.text;
    let option_value = option_element.value;
    let is_option_selected = option_element.selected;

    console.log('Option Text : ' + option_text);
    console.log('Option Value : ' + option_value);
    console.log('Option Selected : ' + (is_option_selected === true ? 'Yes' : 'No'));

    console.log("\n\r");
});
69 được sử dụng,
var counters = 2;

for(i=2;i<=counters;i++){
   $(".select-"+i).change(function() {
      var val = $(".select-"+i).val();
      console.log(val);
   });
}
11 và
var counters = 2;

for(i=2;i<=counters;i++){
   $(".select-"+i).change(function() {
      var val = $(".select-"+i).val();
      console.log(val);
   });
}
12 khớp khi bắt đầu hoặc kết thúc bất kỳ dòng nào trong chuỗi đầu vào thay vì bắt đầu hoặc kết thúc toàn bộ chuỗi.

Sử dụng cờ tìm kiếm toàn cầu với Exec ()

Phương thức

var counters = 2;

for(i=2;i<=counters;i++){
   $(".select-"+i).change(function() {
      var val = $(".select-"+i).val();
      console.log(val);
   });
}
13 với cờ
var counters = 2;

for(i=2;i<=counters;i++){
   $(".select-"+i).change(function() {
      var val = $(".select-"+i).val();
      console.log(val);
   });
}
14 trả về mỗi trận đấu và vị trí của nó lặp đi lặp lại.
$(".select-2").change(function() {
      var val = $(".select-2").val();
      console.log(val);
});
7

Ngược lại, phương thức

var counters = 2;

for(i=2;i<=counters;i++){
   $(".select-"+i).change(function() {
      var val = $(".select-"+i).val();
      console.log(val);
   });
}
15 trả về tất cả các trận đấu cùng một lúc, nhưng không có vị trí của chúng.
$(".select-2").change(function() {
      var val = $(".select-2").val();
      console.log(val);
});
8

Sử dụng các biểu thức chính quy Unicode

Cờ "U" được sử dụng để tạo các biểu thức chính quy "unicode"; Đó là, các biểu thức thường xuyên hỗ trợ khớp với văn bản Unicode. Điều này chủ yếu được thực hiện thông qua việc sử dụng các Escapes thuộc tính Unicode, chỉ được hỗ trợ trong các biểu thức chính quy "Unicode".

Ví dụ: biểu thức chính quy sau đây có thể được sử dụng để khớp với một "từ" unicode tùy ý: từ ":

Có một số khác biệt khác giữa các biểu thức chính quy Unicode và Nonicode mà người ta nên biết:

  • Các biểu thức chính quy của Unicode không hỗ trợ cái gọi là "thoát khỏi danh tính"; Đó là, các mô hình không cần phải bỏ qua một dấu gạch chéo ngược và bị bỏ qua một cách hiệu quả. Ví dụ:
    var counters = 2;
    
    for(i=2;i<=counters;i++){
       $(".select-"+i).change(function() {
          var val = $(".select-"+i).val();
          console.log(val);
       });
    }
    
    16 là một biểu thức chính quy hợp lệ khớp với chữ 'A', nhưng
    var counters = 2;
    
    for(i=2;i<=counters;i++){
       $(".select-"+i).change(function() {
          var val = $(".select-"+i).val();
          console.log(val);
       });
    }
    
    17 thì không.
  • Giá đỡ xoăn cần phải được thoát ra khi không được sử dụng làm định lượng. Ví dụ:
    var counters = 2;
    
    for(i=2;i<=counters;i++){
       $(".select-"+i).change(function() {
          var val = $(".select-"+i).val();
          console.log(val);
       });
    }
    
    18 là một biểu thức chính quy hợp lệ khớp với giá đỡ của khung '{', nhưng
    var counters = 2;
    
    for(i=2;i<=counters;i++){
       $(".select-"+i).change(function() {
          var val = $(".select-"+i).val();
          console.log(val);
       });
    }
    
    19 không - thay vào đó, giá đỡ nên được thoát ra và
    $(".select-2").change(function() {
          var val = $(".select-2").val();
          console.log(val);
    });
    
    00 nên được sử dụng thay thế.
  • Nhân vật
    $(".select-2").change(function() {
          var val = $(".select-2").val();
          console.log(val);
    });
    
    01 được giải thích khác nhau trong các lớp ký tự. Cụ thể, đối với các biểu thức chính quy Unicode,
    $(".select-2").change(function() {
          var val = $(".select-2").val();
          console.log(val);
    });
    
    01 được hiểu là một
    $(".select-2").change(function() {
          var val = $(".select-2").val();
          console.log(val);
    });
    
    01 theo nghĩa đen (và không phải là một phần của phạm vi) chỉ khi nó xuất hiện ở đầu hoặc cuối của lớp ký tự. Ví dụ,
    $(".select-2").change(function() {
          var val = $(".select-2").val();
          console.log(val);
    });
    
    04 là một biểu thức chính quy hợp lệ khớp với ký tự từ,
    $(".select-2").change(function() {
          var val = $(".select-2").val();
          console.log(val);
    });
    
    01 hoặc
    $(".select-2").change(function() {
          var val = $(".select-2").val();
          console.log(val);
    });
    
    06, nhưng
    $(".select-2").change(function() {
          var val = $(".select-2").val();
          console.log(val);
    });
    
    07 là một biểu thức chính quy không hợp lệ, vì
    $(".select-2").change(function() {
          var val = $(".select-2").val();
          console.log(val);
    });
    
    08 đến
    $(".select-2").change(function() {
          var val = $(".select-2").val();
          console.log(val);
    });
    
    06 không phải là một phạm vi ký tự được xác định rõ.

Các biểu thức chính quy của Unicode cũng có hành vi thực thi khác nhau là tốt.

$(".select-2").change(function() {
      var val = $(".select-2").val();
      console.log(val);
});
10 chứa nhiều lời giải thích hơn về điều này.

Ví dụ

Lưu ý: Một số ví dụ cũng có sẵn trong: Several examples are also available in: Several examples are also available in:

  • Các trang tham chiếu cho
    var counters = 2;
    
    for(i=2;i<=counters;i++){
       $(".select-"+i).change(function() {
          var val = $(".select-"+i).val();
          console.log(val);
       });
    }
    
    3,
    var counters = 2;
    
    for(i=2;i<=counters;i++){
       $(".select-"+i).change(function() {
          var val = $(".select-"+i).val();
          console.log(val);
       });
    }
    
    4,
    var counters = 2;
    
    for(i=2;i<=counters;i++){
       $(".select-"+i).change(function() {
          var val = $(".select-"+i).val();
          console.log(val);
       });
    }
    
    6,
    var counters = 2;
    
    for(i=2;i<=counters;i++){
       $(".select-"+i).change(function() {
          var val = $(".select-"+i).val();
          console.log(val);
       });
    }
    
    7,
    
    
    0,
    var counters = 2;
    
    for(i=2;i<=counters;i++){
       $(".select-"+i).change(function() {
          var val = $(".select-"+i).val();
          console.log(val);
       });
    }
    
    8,
    
    
    1
  • Các bài viết hướng dẫn: Các lớp nhân vật, xác nhận, nhóm và backrefer, định lượng, tài sản Unicode thoát khỏi

Sử dụng các ký tự đặc biệt để xác minh đầu vào

Trong ví dụ sau, người dùng dự kiến ​​sẽ nhập số điện thoại. Khi người dùng nhấn nút "Kiểm tra", tập lệnh sẽ kiểm tra tính hợp lệ của số. Nếu số là hợp lệ (khớp với chuỗi ký tự được chỉ định bởi biểu thức chính quy), tập lệnh hiển thị một thông báo cảm ơn người dùng và xác nhận số. Nếu số không hợp lệ, tập lệnh thông báo cho người dùng rằng số điện thoại không hợp lệ.

Biểu thức chính quy tìm kiếm:

  1. Sự khởi đầu của dòng dữ liệu:
    var counters = 2;
    
    for(i=2;i<=counters;i++){
       $(".select-"+i).change(function() {
          var val = $(".select-"+i).val();
          console.log(val);
       });
    }
    
    11
  2. tiếp theo là ba ký tự số
    $(".select-2").change(function() {
          var val = $(".select-2").val();
          console.log(val);
    });
    
    19 hoặc
    $(".select-2").change(function() {
          var val = $(".select-2").val();
          console.log(val);
    });
    
    20 Một dấu ngoặc trái
    $(".select-2").change(function() {
          var val = $(".select-2").val();
          console.log(val);
    });
    
    21, tiếp theo là ba chữ số
    $(".select-2").change(function() {
          var val = $(".select-2").val();
          console.log(val);
    });
    
    19, sau đó là dấu ngoặc đơn gần
  3. tiếp theo là một dấu gạch ngang, chém về phía trước hoặc dấu thập phân trong một nhóm bắt giữ
    $(".select-2").change(function() {
          var val = $(".select-2").val();
          console.log(val);
    });
    
    25
  4. tiếp theo là ba chữ số
    $(".select-2").change(function() {
          var val = $(".select-2").val();
          console.log(val);
    });
    
    19
  5. tiếp theo là trận đấu được ghi nhớ trong nhóm (đầu tiên) bị bắt
    $(".select-2").change(function() {
          var val = $(".select-2").val();
          console.log(val);
    });
    
    27
  6. tiếp theo là bốn chữ số
    $(".select-2").change(function() {
          var val = $(".select-2").val();
          console.log(val);
    });
    
    28
  7. theo sau là kết thúc dòng dữ liệu:
    var counters = 2;
    
    for(i=2;i<=counters;i++){
       $(".select-"+i).change(function() {
          var val = $(".select-"+i).val();
          console.log(val);
       });
    }
    
    12

HTML

$(".select-2").change(function() {
      var val = $(".select-2").val();
      console.log(val);
});
9

JavaScript

var counters = 2;

for(i=2;i<=counters;i++){
   $(".select-"+i).change(function() {
      var val = $(".select-"+i).val();
      console.log(val);
   });
}
0

Kết quả

REGEXR

Một công cụ trực tuyến để tìm hiểu, xây dựng và kiểm tra các biểu thức thường xuyên.

REGEX TESTER

Một trình xây dựng/trình xây dựng regex trực tuyến

Hướng dẫn tương tác Regex

Một hướng dẫn tương tác trực tuyến, gian lận, & sân chơi.

REGEX Visualizer

Một người thử nghiệm trực quan trực tuyến.

  • " Trước
  • Tiếp theo "