正则表达式中/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;
}
}
车牌号校验正则表达式
一、车牌号校验规则
- 常规车牌号:仅允许以汉字开头,后面可录入六个字符,由大写英文字母和阿拉伯数字组成。如:
粤B12345
; - 最后一个为汉字的车牌:允许以汉字开头,后面可录入六个字符,前五位字符,由大写英文字母和阿拉伯数字组成,而最后一个字符为汉字,汉字包括“挂”、“学”、“警”、“港”、“澳”。如:
粤Z1234港
。 - 新军车牌:以两位为大写英文字母开头,后面以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;
}