Hướng dẫn filter alternative javascript - lọc javascript thay thế
I am trying to return an array of the names who are not enabled. Show
I am doing so with:
Is there a cleaner way of doing this? 3 Nội dung chính ShowShow
Mới! Lưu câu hỏi hoặc câu trả lời và sắp xếp nội dung yêu thích của bạn. Tìm hiểu thêm.Learn more. Tôi đang cố gắng phát triển một phương thức để khớp các từ trong mảng (fitems) với các từ từ một chuỗi đã được chuyển đổi thành một mảng (StringArray). Mã tôi có dưới đây hoạt động hầu hết thời gian, nhưng rắc rối là 'bao gồm ()' tìm kiếm các mẫu, thay vì khớp toàn bộ từ. Như một ví dụ. Nó sẽ bối rối nếu tôi đang tìm kiếm 'tường' và nó trả về 'ví'. Ngoài ra, tôi muốn đầu vào linh hoạt. Vì vậy, ví dụ, nếu kính được nhập, vật phẩm 'Shard thủy tinh' vẫn có thể trả lại. Có cách chính xác hơn để phù hợp với các từ chính xác?
Pavlo 41.3K13 Huy hiệu vàng75 Huy hiệu bạc109 Huy hiệu đồng13 gold badges75 silver badges109 bronze badges13 gold badges75 silver badges109 bronze badges hỏi ngày 10 tháng 2 năm 2017 lúc 10:44Feb 10, 2017 at 10:44Feb 10, 2017 at 10:44 5 từ bình luận
Có vẻ như những gì bạn thực sự sau đó là khớp mẫu trong một chuỗi. Một biểu thức thông thường sẽ là điều tốt nhất để sử dụng cho điều đó vì đây là lý do tại sao chúng được tạo ra (khớp mẫu với tùy chọn thay thế).
Trong mã trên 1 được sử dụng để biểu thị một ranh giới từ nên 2 là một trận đấu nhưng 3 sẽ không được khớp. 4 được sử dụng để chỉ định trường hợp không nhạy cảm.Ngoài ra, để kiểm tra các biểu thức của bạn trực tuyến trước khi bạn đặt chúng vào mã của bạn, bạn có thể sử dụng trang web này https://regex101.com/, tôi sử dụng điều này mọi lúc để xác minh các biểu thức tôi xây dựng là chính xác. Đã trả lời ngày 10 tháng 2 năm 2017 lúc 10:54Feb 10, 2017 at 10:54Feb 10, 2017 at 10:54 IgorigorIgorIgor 59.2K10 Huy hiệu vàng93 Huy hiệu bạc164 Huy hiệu đồng10 gold badges93 silver badges164 bronze badges10 gold badges93 silver badges164 bronze badges 7 Tôi nghĩ rằng bạn có thể sử dụng các phương thức 5 và 6 thay vì nó. Sau khi chia, bạn có thể kiểm tra nó với Indexof.
Đã trả lời ngày 10 tháng 2 năm 2017 lúc 10:59Feb 10, 2017 at 10:59Feb 10, 2017 at 10:59 Kamuran Sönecekkamuran SönecekKamuran SönecekKamuran Sönecek 3.3102 Huy hiệu vàng28 Huy hiệu bạc54 Huy hiệu Đồng2 gold badges28 silver badges54 bronze badges2 gold badges28 silver badges54 bronze badges 3 Tạo hàm chấm và sử dụng nó giống như ES6 bao gồm () trong ES5 như dưới đây: 3Sau đây là chuỗi 4Kiểm tra trận đấu như sau: 5Bây giờ bạn có thể thêm cái này cho ES5 bằng cách sử dụng cùng một chỉ mục trong bao gồm cách Đã trả lời ngày 31 tháng 3 lúc 14:08Mar 31 at 14:08Mar 31 at 14:08 ParameshwarParameshwarParameshwarParameshwar 7116 Huy hiệu bạc13 Huy hiệu đồng6 silver badges13 bronze badges6 silver badges13 bronze badges
Nội dung chính Show Tạo một biểu thức chính quyTạo một biểu thức chính quyViết một mẫu biểu thức chính quy
Viết một mẫu biểu thức chính quySử dụng các mẫu đơn giản 40 hoặc kết hợp các ký tự đơn giản và đặc biệt, chẳng hạn như 41 hoặc 42. 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ảnCá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 40 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 44 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 45 và 46. Trong cả hai trường hợp, trận đấu là với chuỗi con 44. Không có khớp trong chuỗi 48 bởi vì trong khi nó chứa chuỗi con 49, nó không chứa bộ nền chính xác 44.Sử dụng các ký tự đặc biệtKhi 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 51 theo sau là 0 hoặc nhiều 52 sau đó là 53, bạn sẽ sử dụng mẫu 41: 55 sau 52 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 57, mẫu này sẽ khớp với bộ nền 58.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ậnCá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). 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à backreferencesNhó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ượngChỉ ra số lượng ký tự hoặc biểu thức để khớp. Tài sản Unicode thoát raPhâ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átNế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 59), 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 51 sau đó là 59 sau đó là 52, bạn sẽ sử dụng 73 - dấu gạch chéo ngược "thoát ra" 59, 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 ____ ____ 65, 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 76 - BackSlash đầ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 31 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. 73 và 79 Tạo 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 70: 7"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 JavaScriptCác biểu thức chính quy được sử dụng với các phương pháp 31 30 và 9 và với các phương pháp 38 32, 3 4, 36 và 37.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 30 hoặc 36; Để 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 9 hoặc 32. Nếu bạn sử dụng 9 hoặc 32 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, 31. Nếu trận đấu không thành công, phương thức 9 trả về 57 (ép buộc thành 58).Trong ví dụ sau, tập lệnh sử dụng phương thức 9 để tìm kết hợp trong một chuỗi. 5Nế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 90 là với tập lệnh này: 9(Xem bằng cách sử dụng cờ tìm kiếm toàn cầu với 9 để 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: 0Vớ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: 1Tuy nhiên, nếu bạn có tập lệnh này: 2Sự xuất hiện của 92 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 93 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: 3hoặc 4Lư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ụ, 94 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. 5 Bạn có thể thay thế dòng: with: 6và nhận được kết quả tương tự. Cờ 95 đượ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ờ 95 được sử dụng, 97 và 98 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 99 với cờ 00 trả về mỗi trận đấu và vị trí của nó lặp đi lặp lại. 7Ngược lại, phương thức 01 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. 8Sử dụng các biểu thức chính quy UnicodeCờ "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 cũng có hành vi thực thi khác nhau là tốt. 16 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:
Sử dụng các ký tự đặc biệt để xác minh đầu vàoTrong 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:
HTML 9JavaScript 0Kế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 TESTERMộ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 RegexMột hướng dẫn tương tác trực tuyến, gian lận, & sân chơi. REGEX VisualizerMột người thử nghiệm trực quan trực tuyến.
|