文章目录
- 1.给一个连字符串例如:get-element-by-id转化成驼峰形式。
- 2.匹配二进制数字
- 3.非零的十进制数字 (有至少一位数字, 但是不能以0开头)
- 4.匹配一年中的12个月
- 5.匹配qq号最长为13为
- 6.匹配常见的固定电话号码
- 7.匹配ip地址
- 8.匹配用尖括号括起来的以a开头的字符串
- 9.分割数字每三个以一个逗号划分
- 10.判断字符串是否包含数字
- 11.判断电话号码
- 12.判断是否符合指定格式
- 13.判断是否符合USD格式
- 14.JS实现千位分隔符
- 15.获取 url 参数
- 16.验证邮箱
- 17.验证身份证号码
- 18.匹配汉字
- 19.去除首尾的'/'
- 20.判断日期格式是否符合 '2017-05-11'的形式,简单判断,只判断格式
- 21.判断日期格式是否符合 '2017-05-11'的形式,严格判断(比较复杂)
- 22.IPv4地址正则
- 23.十六进制颜色正则
- 24.车牌号正则
- 25.过滤HTML标签
- 26.密码强度正则,最少6位,包括至少1个大写字母,1个小写字母,1个数字,1个特殊字符
- 27.URL正则
- 28.匹配浮点数
1.给一个连字符串例如:get-element-by-id转化成驼峰形式。
var str = "get-element-by-id";
var reg = /-\w/g; // 匹配横杆以及之后的一个字符,全局匹配
console.log(str.replace(reg,function($0){
return $0.slice(1).toUpperCase();
// 匹配到到是-e -b -i 形式截取后一个字符转成大写
}));
2.匹配二进制数字
var str = "10101111";
var reg = /^[01]+$/g;
console.log(reg.test(str));
3.非零的十进制数字 (有至少一位数字, 但是不能以0开头)
var str = "81";
var reg = /^[1-9][0-9]?$/g;
console.log(reg.test(str));
4.匹配一年中的12个月
var str = "12";
var reg = /^(0?[1-9]|1[0-2])$/g;
console.log(reg.test(str));
5.匹配qq号最长为13为
var str ="10009093283333";
var reg = /^[1-9][0-9]{4,12}$/g;
console.log(reg.test(str));
6.匹配常见的固定电话号码
var str = "000-12344562";
// \(? 匹配左括号一次或0次然后以0开头后面加两个数字,再匹配右括号或空格或减号一次或0次,随后匹配8个数字
var reg = /\(?0\d{2}[) -]?\d{8}/g;
console.log(str.match(reg));
7.匹配ip地址
var str = "255.221.221.12";
// [01]?\d\d?表示匹配小于199的数,可以说两位数或一位数,2[0-4]\d表示从200到249,配合25[0-5]就表示小于255的数了。
var reg = /(([01]?\d\d?|2[0-4]\d|25[0-5])\.){3}([01]?\d\d?|2[0-4]\d|25[0-5])/g;
console.log(str.match(reg));
8.匹配用尖括号括起来的以a开头的字符串
var str = "<a herf='www.baidu.com'>";
var reg = /<a[^>]+>/g;
console.log(str.match(reg));
9.分割数字每三个以一个逗号划分
var str = "12345678901";
function numSplit(str){
var re = /(\d)(?=(\d{3})+$)/g;
//(\d{3})+$ 的意思是连续匹配 3 个数字,且最后一次匹配以 3 个数字结尾。
//要找到所有的单个字符,这些字符的后面跟随的字符的个数必须是3的倍数,并在符合条件的单个字符后面添加,
return str.replace(re,'$1,');
}
console.log(numSplit(str));
10.判断字符串是否包含数字
function containsNumber(str) {
var regx = /\d/;
return regx.text(str);
}
11.判断电话号码
function isPhone(tel) {
var regx = /^1[34578]\d{9}$/;
return regx.test(tel);
}
12.判断是否符合指定格式
给定字符串str,检查其是否符合如下格式
- XXX-XXX-XXXX
- 其中X为Number类型
function matchesPattern(str) {
return /^(\d{
3}-){
2}\d{
4}&/.test(str);
}
13.判断是否符合USD格式
给定字符串 str,检查其是否符合美元书写格式
- 以 $ 开始
- 整数部分,从个位起,满 3 个数字用 , 分隔
- 如果为小数,则小数部分长度为 2
- 正确的格式如:$1,023,032.03 或者 $2.03,错误的格式如:$3,432,12.12 或者 $34,344.3**
function isUSD(str) {
var regx = /^\$\d{1,3}(,\d{3})*(\.\d{2})?$/;
return regx.test(str);
}
14.JS实现千位分隔符
function format(number) {
var regx = /\d{1,3}(?=(\d{3})+$)/g;
return (number + '').replace(regx, '$&,') // $&表示与regx相匹配的字符串
}
15.获取 url 参数
获取 url 中的参数
- 指定参数名称,返回该参数的值 或者 空字符串
- 不指定参数名称,返回全部的参数对象 或者 {}
- 如果存在多个同名参数,则返回数组
function getUrlParam(url, key) {
var arr = {
};
url.replace(/\??(\w+)=(\w+)&?/g, function(match, matchKey, matchValue) {
if (!arr[matchKey]) {
arr[matchKey] = matchValue;
} else {
var temp = arr[matchKey];
arr[matchKey] = [].concat(temp, matchValue);
}
});
if (!key) {
return arr;
} else {
for (ele in arr) {
if (ele = key) {
return arr[ele];
}
}
return '';
}
}
16.验证邮箱
function isEmail(email) {
var regx = /^([a-zA-Z0-9_\-])+@([a-zA-Z0-9_\-])+(\.[a-zA-Z0-9_\-])+$/;
return regx.test(email);
}
17.验证身份证号码
身份证号码可能为15位或18位,15位为全数字,18位中前17位为数字,最后一位为数字或者X
function isCardNo(number) {
var regx = /(^\d{15}$)|(^\d{18}$)|(^\d{17}(\d|X|x)$)/;
return regx.test(number);
}
18.匹配汉字
var regx = /^[\u4e00-\u9fa5]{0,}$/;
19.去除首尾的’/’
var str = '/asdf//';
str = str.replace(/^\/*|\/*$/g, '');
20.判断日期格式是否符合 '2017-05-11’的形式,简单判断,只判断格式
var regx = /^\d{4}\-\d{1,2}\-\d{1,2}$/
21.判断日期格式是否符合 '2017-05-11’的形式,严格判断(比较复杂)
var regx = /^(?:(?!0000)[0-9]{4}-(?:(?:0[1-9]|1[0-2])-(?:0[1-9]|1[0-9]|2[0-8])|(?:0[13-9]|1[0-2])-(?:29|30)|(?:0[13578]|1[02])-31)|(?:[0-9]{2}(?:0[48]|[2468][048]|[13579][26])|(?:0[48]|[2468][048]|[13579][26])00)-02-29)$/;
22.IPv4地址正则
var regx = /^(?:(?:25[0-5]|2[0-4][0-9]|[01]?[0-9][0-9]?)\.){3}(?:25[0-5]|2[0-4][0-9]|[01]?[0-9][0-9]?)$/;
23.十六进制颜色正则
var regx = /^#?([a-fA-F0-9]{6}|[a-fA-F0-9]{3})$/;
24.车牌号正则
var regx = /^[京津沪渝冀豫云辽黑湘皖鲁新苏浙赣鄂桂甘晋蒙陕吉闽贵粤青藏川宁琼使领A-Z]{1}[A-Z]{1}[A-Z0-9]{4}[A-Z0-9挂学警港澳]{1}$/;
25.过滤HTML标签
var str="<p>dasdsa</p>nice <br> test</br>"
var regx = /<[^<>]+>/g;
str = str.replace(regx, '');
26.密码强度正则,最少6位,包括至少1个大写字母,1个小写字母,1个数字,1个特殊字符
var regx = /^.*(?=.{6,})(?=.*\d)(?=.*[A-Z])(?=.*[a-z])(?=.*[!@#$%^&*? ]).*$/;
27.URL正则
var regx = /^((https?|ftp|file):\/\/)?([\da-z\.-]+)\.([a-z\.]{2,6})([\/\w \.-]*)*\/?$/;
28.匹配浮点数
var regx = /^-?([1-9]\d*\.\d*|0\.\d*[1-9]\d*|0?\.0+|0)$/;