MooTools - Biểu thức chính quy

MooTools cung cấp một cách để tạo và sử dụng Biểu thức chính quy (regex). Hướng dẫn này sẽ giải thích những điều cơ bản và cách sử dụng tuyệt vời của regexes.

Hãy để chúng tôi thảo luận về một vài phương thức của biểu thức chính quy.

kiểm tra()

test () là một phương thức được sử dụng để kiểm tra biểu thức chính quy với chuỗi đầu vào. Mặc dù JavaScript đã cung cấp đối tượng RegExp cùng với hàm test (), MooTools bổ sung nhiều tính năng hơn cho đối tượng RegExp. Hãy để chúng tôi lấy một ví dụ và hiểu cách sử dụng phương thức test (). Hãy xem đoạn mã sau.

Thí dụ

<!DOCTYPE html>
<html>

   <head>
      <script type = "text/javascript" src = "MooTools-Core-1.6.0.js"></script>
      <script type = "text/javascript" src = "MooTools-More-1.6.0.js"></script>
      
      <script type = "text/javascript">
         var regex_demo = function(){
            var test_string = $('regex_value').get('value');
            var regex_value = $('regex_match').get('value');
            var test_result = test_string.test(regex_value);
            
            if (test_result){
               $('regex_1_result').set('html', "Matched");
            } else {
               $('regex_1_result').set('html', "Not Match");
            }
         }
         
         window.addEvent('domready', function() {
            $('regex').addEvent('click', regex_demo);
         });
      </script>
   </head>
   
   <body>
      String: <input type = "text" id = "regex_value"/><br/><br/>
      Reg Exp: <input type = "text" id = "regex_match"/><br/><br/>
      <input type = "button" id = "regex" value = "TEST"/><br/><br/>
      <Lable id = "regex_1_result"></Lable>
   </body>
   
</html>

Bạn sẽ nhận được kết quả sau:

Đầu ra

Bỏ qua trường hợp

Đây là một trong những tình huống quan trọng trong khái niệm biểu thức chính quy. Nếu bạn không muốn một biểu thức chính quy phân biệt chữ hoa chữ thường, bạn gọi phương thức kiểm tra với một tùy chọn 'I'. Hãy để chúng tôi lấy một ví dụ sẽ giải thích trường hợp bỏ qua trong biểu thức chính quy. Hãy xem đoạn mã sau.

Thí dụ

<!DOCTYPE html>
<html>

   <head>
      <script type = "text/javascript" src = "MooTools-Core-1.6.0.js"></script>
      <script type = "text/javascript" src = "MooTools-More-1.6.0.js"></script>
      
      <script type = "text/javascript">
         var regex_demo = function(){
            var test_string = $('regex_value').get('value');
            var regex_value = $('regex_match').get('value');
            var test_result = test_string.test(regex_value, "i");
            
            if (test_result){
               $('regex_1_result').set('html', "Matched");
            } else {
               $('regex_1_result').set('html', "Not Match");
            }
         }
         
         window.addEvent('domready', function() {
            $('regex').addEvent('click', regex_demo);
         });
      </script>
   </head>
   
   <body>
      String: <input type = "text" id = "regex_value"/><br/><br/>
      Reg Exp: <input type = "text" id = "regex_match"/><br/><br/>
      <input type = "button" id = "regex" value = "TEST"/><br/><br/>
      <Lable id = "regex_1_result"></Lable>
   </body>
   
</html>

Bạn sẽ nhận được kết quả sau:

Đầu ra

Regex bắt đầu bằng '^'

Regex '^' (cap) là một toán tử đặc biệt cho phép bạn kiểm tra biểu thức chính quy ở phần đầu của một chuỗi nhất định. Toán tử này được sử dụng làm tiền tố cho biểu thức chính quy. Hãy để chúng tôi lấy một ví dụ sẽ giải thích cách sử dụng toán tử này. Hãy xem đoạn mã sau.

Thí dụ

<!DOCTYPE html>
<html>

   <head>
      <script type = "text/javascript" src = "MooTools-Core-1.6.0.js"></script>
      <script type = "text/javascript" src = "MooTools-More-1.6.0.js"></script>
      
      <script type = "text/javascript">
         var regex_demo = function(){
            var test_string = $('regex_value').get('value');
            var regex_value = $('regex_match').get('value');
            var test_result = test_string.test(regex_value);
            
            if (test_result){
               $('regex_1_result').set('html', "Matched");
            } else {
               $('regex_1_result').set('html', "Not Match");
            }
         }
         
         window.addEvent('domready', function() {
            $('regex').addEvent('click', regex_demo);
         });
      </script>
   </head>
   
   <body>
      String: <input type = "text" id = "regex_value"/><br/><br/>
      Reg Exp: <input type = "text" id = "regex_match"/><br/><br/>
      <input type = "button" id = "regex" value = "Match"/><br/><br/>
      <Lable id = "regex_1_result"></Lable>
   </body>
   
</html>

Bạn sẽ nhận được kết quả sau:

Đầu ra

Regex kết thúc bằng '$'

Regex '$' (đô la) là một toán tử đặc biệt cho phép bạn kiểm tra biểu thức chính quy ở cuối một chuỗi nhất định. Toán tử này được sử dụng làm hậu tố cho biểu thức chính quy. Hãy để chúng tôi lấy một ví dụ sẽ giải thích cách sử dụng toán tử này. Hãy xem đoạn mã sau.

Thí dụ

<!DOCTYPE html>
<html>

   <head>
      <script type = "text/javascript" src = "MooTools-Core-1.6.0.js"></script>
      <script type = "text/javascript" src = "MooTools-More-1.6.0.js"></script>
      
      <script type = "text/javascript">
         var regex_demo = function(){
            var test_string = $('regex_value').get('value');
            var regex_value = $('regex_match').get('value');
            var test_result = test_string.test(regex_value);
            
            if (test_result){
               $('regex_1_result').set('html', "Matched");
            } else {
               $('regex_1_result').set('html', "Not Match");
            }
         }
         
         window.addEvent('domready', function() {
            $('regex').addEvent('click', regex_demo);
         });
      </script>
   </head>
   
   <body>
      String: <input type = "text" id = "regex_value"/><br/><br/>
      Reg Exp: <input type = "text" id = "regex_match"/><br/><br/>
      <input type = "button" id = "regex" value = "Match"/><br/><br/>
      <Lable id = "regex_1_result"></Lable>
   </body>
   
</html>

Bạn sẽ nhận được kết quả sau:

Đầu ra

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

Các lớp ký tự là một giai đoạn của các biểu thức chính quy cho phép bạn khớp các ký tự cụ thể (A hoặc Z) hoặc phạm vi ký tự (A - Z). Ví dụ: bạn muốn kiểm tra xem một trong hai từ foo và Zoo có tồn tại trong một chuỗi hay không, các lớp cho phép bạn thực hiện điều này bằng cách đặt các ký tự trong dấu ngoặc vuông [] với các biểu thức chính quy. Hãy xem đoạn mã sau.

Thí dụ

<!DOCTYPE html>
<html>

   <head>
      <script type = "text/javascript" src = "MooTools-Core-1.6.0.js"></script>
      <script type = "text/javascript" src = "MooTools-More-1.6.0.js"></script>
      
      <script type = "text/javascript">
         var regex_demo_1 = function(){
            var test_string = $('regex_value').get('value');
            var regex_value = $('regex_match_1').get('value');
            var test_result = test_string.test(regex_value);
            
            if (test_result){
               $('regex_1_result').set('html', "Matched");
            } else {
               $('regex_1_result').set('html', "Not Match");
            }
         }
         
         var regex_demo_2 = function(){
            var test_string = $('regex_value').get('value');
            var regex_value = $('regex_match_2').get('value');
            var test_result = test_string.test(regex_value);
            
            if (test_result){
               $('regex_2_result').set('html', "Matched");
            } else {
               $('regex_2_result').set('html', "Not Match");
            }
         }
         
         var regex_demo_3 = function(){
            var test_string = $('regex_value').get('value');
            var regex_value = $('regex_match_3').get('value');
            var test_result = test_string.test(regex_value);
            
            if (test_result){
               $('regex_3_result').set('html', "Matched");
            } else {
               $('regex_3_result').set('html', "Not Match");
            }
         }
         
         window.addEvent('domready', function() {
            $('regex_1').addEvent('click', regex_demo_1);
            $('regex_2').addEvent('click', regex_demo_2);
            $('regex_3').addEvent('click', regex_demo_3);
         });
      </script>
   </head>
   
   <body>
      String: <input type = "text" id = "regex_value"/><br/><br/>
      Reg Exp 1: <input type = "text" id = "regex_match_1"/> 
      <input type = "button" id = "regex_1" value = "Match"/> 
      <Lable id = "regex_1_result"></Lable><br/><br/>
      
      Reg Exp 2: <input type = "text" id = "regex_match_2"/> 
      <input type = "button" id = "regex_2" value = "Match"/> 
      <Lable id = "regex_2_result"></Lable><br/><br/>
      
      Reg Exp 3: <input type = "text" id = "regex_match_3"/> 
      <input type = "button" id = "regex_3" value = "Match"/> 
      <Lable id = "regex_3_result"></Lable>
   </body>
   
</html>

Bạn sẽ nhận được kết quả sau:

Đầu ra

EscapeRegExp ()

Phương thức này được sử dụng để bỏ qua các ký tự thoát khỏi một chuỗi đã cho trong khi kiểm tra nó bằng một biểu thức chính quy. Thông thường, các ký tự thoát là -

- . * + ? ^ $ { } ( ) | [ ] / \

Hãy để chúng tôi lấy một ví dụ trong đó, chúng tôi có một Chuỗi đã cho như "[check-this-things] nó là $ 900". Nếu bạn muốn lấy toàn bộ chuỗi này, bạn phải khai báo nó như thế này - "\ [check \ -this \ -stuff \] it is \ $ 900". Hệ thống chỉ chấp nhận mẫu này. Chúng tôi không sử dụng các mẫu ký tự Escapekpe trong MooTools. Chúng ta có phương thức EscapeRegExp () để bỏ qua các ký tự thoát. Hãy xem đoạn mã sau.

Thí dụ

<!DOCTYPE html>
<html>

   <head>
      <script type = "text/javascript" src = "MooTools-Core-1.6.0.js"></script>
      <script type = "text/javascript" src = "MooTools-More-1.6.0.js"></script>
      
      <script type = "text/javascript">
         var regex_demo_1 = function(){
            var test_string = $('regex_value').get('value');
            var regex_value = $('regex_match_1').get('value');
            var test_result = test_string.test(regex_value);
            
            if (test_result){
               $('regex_1_result').set('html', "Matched");
            } else {
               $('regex_1_result').set('html', "Not Match");
            }
         }
         
         var regex_demo_2 = function(){
            var test_string = $('regex_value').get('value');
            var regex_value = $('regex_match_1').get('value');
            regex_value = regex_value.escapeRegExp();
            var test_result = test_string.test(regex_value);
            
            if (test_result){
               $('regex_2_result').set('html', "Matched");
            } else {
               $('regex_2_result').set('html', "Not Match");
            }
         }
         
         window.addEvent('domready', function() {
            $('regex_1').addEvent('click', regex_demo_1);
            $('regex_2').addEvent('click', regex_demo_2);
            $('regex_3').addEvent('click', regex_demo_3);
         });
      </script>
   </head>
   
   <body>
      String: <input type = "text" id = "regex_value"/><br/><br/>
      Reg Exp 1: <input type = "text" id = "regex_match_1" size = "6"/><br/><br/>
      <input type = "button" id = "regex_1" value = "With escapeRegExp()"/> 
      <Lable id = "regex_1_result"></Lable><br/><br/>
      <input type = "button" id = "regex_2" value = "Without escapeRegExp()"/> 
      <Lable id = "regex_2_result"></Lable><br/><br/>
   </body>
   
</html>

Bạn sẽ nhận được kết quả sau:

Đầu ra