Biết được một cái gì đó có hoặc không có trong một chuỗi có thể rất quan trọng. Nếu bạn có một diễn đàn trực tuyến và không muốn mọi người có thể tạo tên người dùng bao gồm những từ chửi thề, bạn có thể sử dụng chức năng tìm kiếm để tìm những từ xấu trong tên người dùng và từ chối chúng nếu tìm thấy chúng
Hàm chuỗi này nhận một biểu thức chính quy và sau đó kiểm tra chuỗi đó để xem có biểu thức nào khớp với biểu thức đó không. Nếu có sự trùng khớp, nó sẽ trả về vị trí trong chuỗi nơi tìm thấy sự trùng khớp. Nếu không khớp, nó sẽ trả về -1. Chúng tôi sẽ không đi sâu vào các biểu thức chính quy, nhưng chúng tôi sẽ chỉ cho bạn cách tìm kiếm các từ trong một chuỗi
Điều quan trọng nhất cần nhớ khi tạo một biểu thức chính quy là nó phải được bao quanh bởi dấu gạch chéo /biểu thức chính quy/. Với kiến thức đó, hãy tìm kiếm một chuỗi để xem có tên chung "Alex" bên trong chuỗi đó không
Mã JavaScript
Trưng bày
Lưu ý rằng biểu thức chính quy của chúng tôi chỉ là tên "Alex". Sau đó, chức năng tìm kiếm đã sử dụng tên này để xem liệu "Alex" có tồn tại trong chuỗi 1 hay không. Một trận đấu đã được tìm thấy, và vị trí của trận đấu [45], đã được trả lại
Một công cụ cơ bản khác cho biểu thức chính quy là ký tự ống ". " [nằm dưới phím Backspace trên bàn phím tiêu chuẩn] cho phép bạn tìm kiếm các từ thay thế /RegExp1. RegExp2/. Thay vì chỉ tìm kiếm một từ, giờ đây chúng ta có thể sử dụng ký tự ống để tìm kiếm nhiều từ
Mã JavaScript
Trưng bày
Lưu ý rằng biểu thức chính quy của chúng tôi có hai tên. Alex và John. Sau đó, chức năng tìm kiếm đã sử dụng các tên này để cố gắng tìm lần xuất hiện đầu tiên trong chuỗi string1. John đến trước Alex trong chuỗi của chúng tôi, vì vậy vị trí của nó [6], đã được trả về
Hãy xem xét một vài ví dụ nâng cao hơn
Các ví dụ sau đây xoay quanh tên một chút để bạn có thể thấy rõ chức năng tìm kiếm hoạt động như thế nào
Mã JavaScript
Trưng bày
Trong tìm kiếm đầu tiên, một trận đấu đã được tìm thấy. Điều này là do tìm kiếm của chúng tôi không chỉ định rằng tên phải chính xác là Alex và vì tên Alexandra có chứa "Alex" nên một kết quả trùng khớp đã được tìm thấy
Trong lần tìm kiếm thứ hai, chúng tôi đã sửa lỗi này bằng cách thêm một khoảng trắng sau tên Alex để thực hiện tìm kiếm "Alex" và không tìm thấy kết quả phù hợp nào
chuỗi. phương thức search[] là phương thức sẵn có trong JavaScript được sử dụng để tìm kiếm sự khớp giữa các biểu thức chính quy và một đối tượng chuỗi đã cho
cú pháp
string.search[ A ]
Thông số. Phương thức này chấp nhận một tham số A giữ biểu thức chính quy làm đối tượng
Giá trị trả về. Hàm này trả về chỉ mục của chuỗi khớp đầu tiên ở giữa biểu thức chính quy và đối tượng chuỗi đã cho và trả về -1 nếu không tìm thấy kết quả khớp. Lập chỉ mục bắt đầu từ số không [0] và trong lần thử đầu tiên, một bảng chữ cái được khớp, sau đó nó không kiểm tra thêm. Đơn giản, nó trả về chỉ mục của bảng chữ cái phù hợp đầu tiên đó
ví dụ 1. Ví dụ dưới đây minh họa chuỗi. phương thức tìm kiếm [] trong JavaScript
Javascript
3
4
5
4
7
8
9
0 1 40
4
0 1 42
4
7
0 1 45
4
7
0 1 48
4
7
-1 -1 -1 -11
4
-1 -1 -1 -13
4
-1 -1 -1 -15
-1 -1 -1 -16
-1 -1 -1 -17
4
-1 -1 -1 -19
-1 -1 -1 -16
-1 -1 -1 -17
4
33
34
đầu ra
0 1 4
ví dụ 2. Ví dụ này trả về -1, vì không tìm thấy kết quả khớp giữa biểu thức chính quy và chuỗi đầu vào
Trong ví dụ trên, chúng tôi đã sử dụng phương thức
0 1 43 để tìm kiếm sự khớp giữa biểu thức chính quy và chuỗi đã cho
Ở đây regExp chỉ ra một mẫu có
73 theo sau là một chữ số
74 thực hiện tìm kiếm và trả về 11 là giá trị chỉ mục của kết quả tìm thấy i. e.
75
Hướng dẫn JavaScript này giải thích cách sử dụng phương thức chuỗi có tên search[] với cú pháp và ví dụ
Sự mô tả
Trong JavaScript, search[] là một phương thức chuỗi được sử dụng để tìm kiếm một chuỗi hoặc biểu thức chính quy cụ thể. Vì phương thức search[] là một phương thức của đối tượng String nên nó phải được gọi thông qua một thể hiện cụ thể của lớp String
cú pháp
Trong JavaScript, cú pháp của phương thức search[] là
0
Tham số hoặc Đối số
search_expressionNó là một giá trị chuỗi hoặc một đối tượng RegExp sẽ được tìm kiếm trong chuỗi. Là một đối tượng RegExp, nó có thể là sự kết hợp của những điều sau đây
ValueDescription^Khớp với phần đầu của chuỗi. Nếu được sử dụng với tham số match_của 'm', nó sẽ khớp với đầu dòng ở bất kỳ đâu trong biểu thức. $ Khớp với phần cuối của một chuỗi. Nếu được sử dụng với tham số match_của 'm', nó sẽ khớp với cuối dòng ở bất kỳ đâu trong biểu thức. *Không khớp hoặc nhiều lần xuất hiện. +Khớp một hoặc nhiều lần xuất hiện. ?Trận đấu không hoặc một lần xuất hiện. Khớp với bất kỳ ký tự nào ngoại trừ NULL. Được sử dụng như một "HOẶC" để chỉ định nhiều hơn một phương án thay thế. [ ]Được sử dụng để chỉ định một danh sách khớp mà bạn đang cố gắng khớp bất kỳ ký tự nào trong danh sách. [^ ]Được sử dụng để chỉ định một danh sách không khớp mà bạn đang cố khớp bất kỳ ký tự nào ngoại trừ các ký tự trong danh sách. [ ]Được sử dụng để nhóm các biểu thức thành một biểu thức con. \bKhớp với ranh giới từ\BKhớp với ranh giới không phải từ{m}Khớp với m lần. {m,}Trận đấu ít nhất m lần. {m,n}Trận đấu ít nhất m lần, nhưng không quá n lần. \nn là một số từ 1 đến 9. Khớp với biểu thức con thứ n được tìm thấy trong [ ] trước khi gặp \n. [. ] So khớp một phần tử đối chiếu có thể có nhiều hơn một ký tự. [. ] Khớp các lớp nhân vật. [==]Khớp với các lớp tương đương. \dKhớp một ký tự chữ số. \DKhớp một ký tự không có chữ số. \wKhớp một ký tự từ. \WKhớp một ký tự không phải từ. \sKhớp với một ký tự khoảng trắng. \Smatches một ký tự không phải khoảng trắng. \tkhớp một ký tự tab ngang. \v khớp với một ký tự tab dọc. \rkhớp với ký tự xuống dòng. \fkhớp một ký tự nguồn cấp biểu mẫu. \nkhớp với một ký tự nguồn cấp dữ liệu dòng. [\b]khớp với ký tự xóa lùi. \0 khớp với ký tự NUL. *?Khớp mẫu trước không hoặc nhiều lần xuất hiện. +?Khớp mẫu trước đó một hoặc nhiều lần xuất hiện. ??Khớp mẫu trước không hoặc một lần xuất hiện. {n}?Khớp mẫu trước đó n lần. {n,}?Khớp mẫu trước đó ít nhất n lần. {n,m}?Khớp mẫu trước đó ít nhất n lần, nhưng không nhiều hơn m lầntrả lại
Phương thức search[] trả về một số nguyên đại diện cho vị trí của ký tự đầu tiên của search_expression được tìm thấy trong chuỗi. Vị trí đầu tiên trong chuỗi là 0 và vị trí cuối cùng trong chuỗi là chuỗi. chiều dài-1
Nếu không tìm thấy biểu_thức_tìm_kiếm trong chuỗi, phương thức search[] sẽ trả về -1
Ghi chú
- Phương thức search[] không thay đổi giá trị của chuỗi ban đầu
- Phương thức search[] thực hiện tìm kiếm phân biệt chữ hoa chữ thường
- Phương thức search[] không hỗ trợ thuộc tính g khi một biểu thức chính quy được cung cấp và do đó không thể thực hiện so khớp toàn cầu. Điều này có nghĩa là phương thức search[] chỉ tìm thấy kết quả khớp đầu tiên và không thể tìm thấy tất cả các kết quả khớp trong một chuỗi
- Khi phương thức search[] tìm thấy kết quả phù hợp, nó sẽ đặt RegExp. leftContext, RegExp. rightContext và RegExp. $1 là các thuộc tính của lớp RegExp. Các thuộc tính này cung cấp thông tin bổ sung về trận đấu được tìm thấy
Thí dụ
Hãy cùng xem một ví dụ về cách sử dụng phương thức search[] trong JavaScript
Chuỗi dưới dạng Biểu thức tìm kiếm
Cách đơn giản nhất để sử dụng phương thức search[] là tìm kiếm một chuỗi và không liên quan đến các đối tượng biểu thức chính quy
Ví dụ
1
Trong ví dụ này, chúng tôi đã khai báo một biến có tên totn_string được gán giá trị chuỗi là 'TechOnTheNet'. Sau đó, chúng tôi đã gọi phương thức search[] của totn_string để tìm một giá trị chuỗi
Chúng tôi đã ghi đầu ra của phương thức search[] vào nhật ký bảng điều khiển trình duyệt web, nhằm mục đích trình diễn, để hiển thị kết quả mà phương thức search[] trả về
Phần sau đây sẽ được xuất ra nhật ký bảng điều khiển trình duyệt web
2
Trong ví dụ này, phương thức search[] đã thực hiện tìm kiếm lần xuất hiện đầu tiên của ký tự viết hoa và trả về giá trị 0. Giá trị trả về này là vị trí của 'T' trong chuỗi 'TechOnTheNet'