正则表达式-常用正则表达式汇总(大全)
来源:互联网 发布:js strict模式 编辑:程序博客网 时间:2024/06/04 19:27
本文将我们在日常工作中经常使用的一些正则表达式进行汇总,需要的时候可以直接拷贝来使用。
常用正则表达式
长日期格式
匹配带年月日、时分秒的子串,例如:2016-01-12 18:53:55。
/^(\d{1,4})(-|\/)(\d{1,2})\2(\d{1,2}) (\d{1,2}):(\d{1,2}):(\d{1,2})$/
短日期格式
匹配带年月日的子串,例如:2016-01-12。
/^(\d{1,4})(-|\/)(\d{1,2})\2(\d{1,2})$/
电话号码格式(中国)
匹配中国格式的固定电话号码,例如:(010)0773-5888888,0773-5888888,5888888都能匹配。
/^((\(\d{2,3}\))|(\d{3}\-))?(\(0\d{2,3}\)|0\d{2,3}-)?[1-9]\d{6,7}(\-\d{1,4})?$/i
手机号码格式
匹配中国格式的手机号码,匹配任何以13、15、18开头的11位手机号码。
/^(13|15|18)\d{9}$/i
传真号码格式
匹配传真号码子串。
/^((\(\d{2,3}\))|(\d{3}\-))?(\(0\d{2,3}\)|0\d{2,3}-)?[1-9]\d{6,7}(\-\d{1,4})?$/
邮政编码(中国)格式
匹配中国格式的邮政编码。
/^[\d]{6}$/
判断字符串中是否存在汉字字符
用于判断某个字符串中是否包含汉字字符。
//[\u4E00-\u9FA5]为汉字,[\uFE30-\uFFA0]为全角符号
/^[\x00-\xff]*$/
判断字符串是否为中文
用于判断某个字符串是否由中文汉字组成。
/^[\u0391-\uFFE5]+$/
判断字符串是否为英文
用于判断某个字符串是否由英文组成。
/^[A-Za-z]+$/i
是否是正确的文件名称(路径)格式
用于判断某个字符串是否是正确的文件名称(路径)格式。例如:d://abc/xyz/ok.txt,file:///F:/zzz/ccc/bbb/aaa.html,或者http://www.abc.com/index.html
/[\\\/\*\?\|:<>]/g
是否是正确的URL格式
用于判断某个字符串是否是正确的URL格式。
/^(https?|ftp):\/\/(((([a-z]|\d|-|\.|_|~|[\u00A0-\uD7FF\uF900-\uFDCF\uFDF0-\uFFEF])|(%[\da-f]{2})|[!\$&
'\(\)\*\+,;=]|:)*@)?(((\d|[1-9]\d|1\d\d|2[0-4]\d|25[0-5])\.(\d|[1-9]\d|1\d\d|2[0-4]\d|25[0-5])\.(\d|[1-9]\d|1\d\d|2[0-4]\d|25[0-5])\.(\d|[1-9]\d|1\d\d|2[0-4]\d|25[0-5]))|((([a-z]|\d|[\u00A0-\uD7FF\uF900-\uFDCF\uFDF0-\uFFEF])|(([a-z]|\d|[\u00A0-\uD7FF\uF900-\uFDCF\uFDF0-\uFFEF])([a-z]|\d|-|\.|_|~|[\u00A0-\uD7FF\uF900-\uFDCF\uFDF0-\uFFEF])*([a-z]|\d|[\u00A0-\uD7FF\uF900-\uFDCF\uFDF0-\uFFEF])))\.)+(([a-z]|[\u00A0-\uD7FF\uF900-\uFDCF\uFDF0-\uFFEF])|(([a-z]|[\u00A0-\uD7FF\uF900-\uFDCF\uFDF0-\uFFEF])([a-z]|\d|-|\.|_|~|[\u00A0-\uD7FF\uF900-\uFDCF\uFDF0-\uFFEF])*([a-z]|[\u00A0-\uD7FF\uF900-\uFDCF\uFDF0-\uFFEF])))\.?)(:\d*)?)(\/((([a-z]|\d|-|\.|_|~|[\u00A0-\uD7FF\uF900-\uFDCF\uFDF0-\uFFEF])|(%[\da-f]{2})|[!\$&'
\(\)\*\+,;=]|:|@)+(\/(([a-z]|\d|-|\.|_|~|[\u00A0-\uD7FF\uF900-\uFDCF\uFDF0-\uFFEF])|(%[\da-f]{2})|[!\$&
'\(\)\*\+,;=]|:|@)*)*)?)?(\?((([a-z]|\d|-|\.|_|~|[\u00A0-\uD7FF\uF900-\uFDCF\uFDF0-\uFFEF])|(%[\da-f]{2})|[!\$&'
\(\)\*\+,;=]|:|@)|[\uE000-\uF8FF]|\/|\?)*)?(\
#((([a-z]|\d|-|\.|_|~|[\u00A0-\uD7FF\uF900-\uFDCF\uFDF0-\uFFEF])|(%[\da-f]{2})|[!\$&'\(\)\*\+,;=]|:|@)|\/|\?)*)?$/i
上面的正则表达式的详细解释如下:
var
strRegex =
"^((https|http|ftp|rtsp|mms)?: //)"
+
"?(([0-9a-z_!~*'().&=+$%-]+: )?[0-9a-z_!~*'().&=+$%-]+@)?"
//ftp的user@//
+
"(([0-9]{1,3}\.){3}[0-9]{1,3}"
// IP形式的URL- 199.194.52.184
+
"|"
// 允许IP和DOMAIN(域名)
+
"([0-9a-z_!~*'()-]+\.)*"
// 域名- www.
+
"([0-9a-z][0-9a-z-]{0,61})?[0-9a-z]\."
// 二级域名
+
"[a-z]{2,6})"
// first level domain- .com or .museum
+
"|"
// 允许为本机
+
"localhost|127.0.0.1"
// 允许为本机地址
+
"(:[0-9]{1,4})?"
// 端口- :80
+
"((/?)|"
// a slash isn't required if there is no file name
+
"(/[0-9a-z_!~*'().;?:@&=+$,%#-]+)+/?)$"
;
是否为合法的货币格式
用于判断某个字符串是否为合法的货币格式。
/^d{0,}(\.\d+)?$/i
是否为合法的QQ号码格式
用于判断某个字符串是否为合法的QQ号码格式。
/^[1-9]\d{4,11}$/i
是否为合法的车牌号码
用于判断某个字符串是否为合法的车牌号码。
/^[\u4E00-\u9FA5][\da-zA-Z]{6}$/
是否为合法的汽车发动机序列号
用于判断某个字符串是否为合法的汽车发动机序列号。
/^[a-zA-Z0-9]{16}$/
是否为合法的用户名字符
用于判断某个字符串是否为合法的用户名字符。合法的用户名要求以字母开头,允许6-16字节,允许字母数字下划线。
/^[a-zA-Z][a-zA-Z0-9_]{5,15}$/i
身份证号码(中国)格式
用于验证中国格式的身份证号码。
function
isIDCard(str){
if
(str ==
""
)
return
false
;
var
iSum = 0;
var
info =
""
;
var
sId = str;
var
aCity = { 11:
"北京"
, 12:
"天津"
, 13:
"河北"
, 14:
"山西"
, 15:
"内蒙古"
, 21:
"辽宁"
, 22:
"吉林"
, 23:
"黑龙江"
, 31:
"上海"
, 32:
"江苏"
, 33:
"浙江"
, 34:
"安徽"
, 35:
"福建"
, 36:
"江西"
, 37:
"山东"
, 41:
"河南"
, 42:
"湖北"
, 43:
"湖南"
, 44:
"广东"
, 45:
"广西"
, 46:
"海南"
, 50:
"重庆"
, 51:
"四川"
, 52:
"贵州"
, 53:
"云南"
, 54:
"西藏"
, 61:
"陕西"
, 62:
"甘肃"
, 63:
"青海"
, 64:
"宁夏"
, 65:
"新疆"
, 71:
"台湾"
, 81:
"香港"
, 82:
"澳门"
, 91:
"国外"
};
if
(!/^\d{17}(\d|x)$/i.test(sId)) {
return
false
; }
sId = sId.replace(/x$/i,
"a"
);
//非法地区
if
(aCity[parseInt(sId.substr(0, 2), 10)] ==
null
) {
return
false
; }
var
sBirthday = sId.substr(6, 4) +
"-"
+ Number(sId.substr(10, 2)) +
"-"
+ Number(sId.substr(12, 2));
var
d =
new
Date(sBirthday.replace(/-/g,
"/"
))
//非法生日
if
(sBirthday != (d.getFullYear() +
"-"
+ (d.getMonth() + 1) +
"-"
+ d.getDate())) {
return
false
; }
for
(
var
i = 17; i >= 0; i--) { iSum += (Math.pow(2, i) % 11) * parseInt(sId.charAt(17 - i), 11); }
if
(iSum % 11 != 1) {
return
false
; }
return
true
;
}
是否是正确的数字格式
验证某个字符串是否为正确的数字格式。正确的数字格式可以是正数、负数、整数、正整数、负整数、浮点数、正浮点数、负浮点数。
function
isNumeric(str){
if
(str ==
""
)
return
false
;
//验证是否是数字
if
(isNaN(str)) {
return
false
; }
if
(arguments.length == 0) {
return
false
; }
switch
(flag) {
case
""
:
return
true
;
case
"+"
:
//正数
return
/(^\+?|^\d?)\d*\.?\d+$/.test(str);
case
"-"
:
//负数
return
/^-\d*\.?\d+$/.test(str);
case
"i"
:
//整数
return
/(^-?|^\+?|\d)\d+$/.test(str);
case
"+i"
:
//正整数
return
/(^\d+$)|(^\+?\d+$)/.test(str);
case
"-i"
:
//负整数
return
/^[-]\d+$/.test(str);
case
"f"
:
//浮点数
return
/(^-?|^\+?|^\d?)\d*\.\d+$/.test(str);
case
"+f"
:
//正浮点数
return
/(^\+?|^\d?)\d*\.\d+$/.test(str);
case
"-f"
:
//负浮点数
return
/^[-]\d*\.\d$/.test(str);
default
:
//缺省
return
true
;
}
}
是否是正确的颜色(#FFFFFF形式)格式
验证某个字符串是否为正确的十六进制颜色格式。
function
isColor(str){
if
(str ==
""
) {
return
true
};
if
(str.length != 7) {
return
false
};
return
(str.search(/\
#[a-fA-F0-9]{6}/) != -1);
}
判断当前String对象是否可以作为安全密码字符
验证某个字符串是否是否可以作为安全密码字符。安全密码字符的定义是由字符和数字组成,至少6位。注意,测试结果要进行取反操作,就是说得到的结果为false
表示安全,得到的结果为true
表示不安全。
/^(([A-Z]*|[a-z]*|\d*|[-_\~!@
#\$%\^&\*\.\(\)\[\]\{\}<>\?\\\/\'\"]*)|.{0,5})$|\s/
对字符串进行Html编码
可以将某个字符串进行HTML编码。即将相应的HTML标签符号转换为实体符号。例如:>转换为>
function
toHtmlEncode(str){
var
temp = str;
temp = temp.replace(/&/g,
"&"
);
temp = temp.replace(/</g,
"<"
);
temp = temp.replace(/>/g,
">"
);
temp = temp.replace(/\
'/g, "'
");
temp = temp.replace(/\
"/g, "
""
);
temp = temp.replace(/\n/g,
"<br>"
);
temp = temp.replace(/\ /g,
" "
);
temp = temp.replace(/\t/g,
" "
);
return
temp;
}
- 正则表达式-常用正则表达式汇总(大全)
- 常用正则表达式汇总
- 常用正则表达式汇总
- 常用正则表达式汇总
- 常用正则表达式汇总
- 常用正则表达式汇总
- 常用正则表达式汇总
- 常用正则表达式汇总
- 常用正则表达式汇总
- 常用正则表达式汇总
- 常用正则表达式汇总
- 常用正则表达式汇总
- 正则表达式- 常用汇总
- 常用正则表达式汇总
- 常用正则表达式汇总
- 常用正则表达式汇总
- 常用正则表达式汇总
- 常用正则表达式汇总
- Android Retrofit 2.0框架上传图片解决方案(一张与多张的处理)
- LeetCode64. Minimum Path Sum
- Android-测试技巧 – 你所不知道的测试黑科技
- Google Guava EventBus实例与分析
- Android Studio 配置说明
- 正则表达式-常用正则表达式汇总(大全)
- CKEditor图片上传实现详细步骤(使用Struts 2)
- hdoj--2015--偶数求和(水题)
- Android 内存溢出和内存泄漏的区别
- 核心产品开源项目配置说明
- TODO 晚上看下给 Android 开发者的 RxJava 详解 ok
- 【NOI2002】银河英雄传说
- 设计模式(5)--Adapter 适配器
- "This application is modifying the autolayout engine from a background thread, which can lead to en