正規表示式知識點

風靈使發表於2018-05-10

正規表示式中/i,/g,/ig,/gi,/m的區別和含義

/i (忽略大小寫)
/g (全文查詢出現的所有匹配字元)
/m (多行查詢)
/gi(全文查詢、忽略大小寫)
/ig(全文查詢、忽略大小寫)

正規表示式加^$與不加的區別

^$的話就代表把整個要匹配的字串當成一個整體做一次匹配,而不加則一個字串可以匹配多次,只能代表這個字串中有符合條件的並不代表改字串符合條件。

JS判斷字串是否包含特殊字元和空格tab

me.checkSpecialChar = function(e){
    var re = /[~#^$@%&!*]/gi;
    if (re.test(e.newValue)) {
        mx.indicate("info","名稱中含有特殊字元!");
        return;
    }
}


me.checkSpecialChar = function(e){
    var re = /[~#^$@%&!*()<>:;'"{}【】  ]/gi;
    if (re.test(e.newValue)) {
        mx.indicate("info","名稱中含有特殊字元!");
        return;
    }
}

車牌號校驗正規表示式

一、車牌號校驗規則

1.常規車牌號:僅允許以漢字開頭,後面可錄入六個字元,由大寫英文字母和阿拉伯數字組成。如:粵B12345
2.最後一個為漢字的車牌:允許以漢字開頭,後面可錄入六個字元,前五位字元,由大寫英文字母和阿拉伯數字組成,而最後一個字元為漢字,漢字包括“掛”、“學”、“警”、“港”、“澳”。如:粵Z1234港
3.新軍車牌:以兩位為大寫英文字母開頭,後面以5位阿拉伯數字組成。如:BA12345

二、正規表示式

^[京津滬渝冀豫雲遼黑湘皖魯新蘇浙贛鄂桂甘晉蒙陝吉閩貴粵青藏川寧瓊使領A-Z]{1}[A-Z]{1}[A-Z0-9]{4}[A-Z0-9掛學警港澳]{1}$

三、使用示例

1. Oracle PL/SQL

  create or replace  function is_vehicle_number(p_vehicle_number in varchar2) return number
  is
    v_result number;
    v_express varchar2(600);
  begin
    -- 預設0,表示不正確
    v_result := 0;

    if length(p_vehicle_number) = 7 then
      v_express := '^[京津滬渝冀豫雲遼黑湘皖魯新蘇浙贛鄂桂甘晉蒙陝吉閩貴粵青藏川寧瓊使領A-Z]{1}[A-Z]{1}[A-Z0-9]{4}[A-Z0-9掛學警港澳]{1}$';

      if regexp_like(p_vehicle_number, v_express) then      
        v_result := 1;
      end if;
    end if;

    return v_result;
  end;

2. Javascript

  function isVehicleNumber(vehicleNumber) {
      var result = false;
      if (vehicleNumber.length == 7){
        var express = /^[京津滬渝冀豫雲遼黑湘皖魯新蘇浙贛鄂桂甘晉蒙陝吉閩貴粵青藏川寧瓊使領A-Z]{1}[A-Z]{1}[A-Z0-9]{4}[A-Z0-9掛學警港澳]{1}$/;
        result = express.test(vehicleNumber);
      }
      return result;
  }

3.C#

public static bool IsVehicleNumber(string vehicleNumber)
{
    bool result = false;
    if (vehicleNumber.Length == 7){
      string express = @"^[京津滬渝冀豫雲遼黑湘皖魯新蘇浙贛鄂桂甘晉蒙陝吉閩貴粵青藏川寧瓊使領A-Z]{1}[A-Z]{1}[A-Z0-9]{4}[A-Z0-9掛學警港澳]{1}$";
      result = Regex.IsMatch(vehicleNumber, express);
    }
    return result;
}

相關文章