构建正则表达式
<body>
<input type="text" id="fun">
</body>
<script>
var btn = document.getElementById("fun");
btn.onblur = function () {
var add = btn.value;
var reg = /@/;
if (!reg.test(add)) {
alert("输入不正确");
}
}
构造函数
var reg = new RegExp("HELLO","g");
字面量
var reg = /hello/g;
console.log(reg);
正则创建:
1.构造函数
var reg = new RegExp(pattern,修饰符);
2.字面量
var reg = /pattern/修饰符
pattern是正则模式
修饰符 :g是全局匹配,i 忽略大小写
var str = "hE11o world,hello giku" ;
var reg = /@/;
console.log(reg.text(str));
正则对象的方法
regObj.text(参数) 用于检测字符串参数是否匹配正则表达式
参数:字符串
返回值:布尔值
如果字符串匹配到正则表达式,返回true,否则返回false
</script>
RegExp对象的方法
test()
<script>
var str = "abc2";
var reg = /[0-9]/; //01234..9
var reg = /[a-z]/; //abc..z
var reg = /[A-Z]/; //ABC...Z
var reg = /[a-zA-Z0-9]/; //ABC...Z
var reg = /[abc]/; //或a 或b 或c
var reg = /[a-zA-Z0-9]/; //含有字母或数字
var reg = /[^a]/ // 匹配除了a之外的其他字符
var reg = /[^0-9]/ //匹配非数字
var reg = /(a|b|c)/;
var reg = /abc/; //abc
if (reg.test(str)) {
console.log("验证通过");
}
</script>
exec()
<script>
var str = "hello world , hello qiku";
var reg = /hello/g;
var reg = /@/;
if (reg.exec(str) === null) {
alert("请输入邮箱的正确格式");
}
// while((res = reg.exec(str)) !=null){
// console.log(res);
// }
// regObj.exec(参数) 检测字符串是否匹配正则表达式
// 参数:字符串
// 返回:数组 或 null
// 如果字符串匹配正则表达式,返回匹配的结果(数组),否则返回null
</script>
正则-元字符
<script>
var str = 'hello';
var reg = /[0-9]/; // 匹配0-9任何一个数字
var reg = /\d/; // 匹配0-9任何一个数字
var reg = /[^0-9]/; // 非数字
var reg = /[/D]/; // 非数字
var reg = /[a-zA-Z0-9_]/;
var reg = /\w/; // 匹配字母或数字或下划线 等于 /[a-zA-Z0-9_]/
var reg = /[^a-zA-Z0-9_]/; // 匹配非字母或数字或下划线之外的其他字符
var reg = /\W/; // 匹配非字母或数字或下划线之外的其他字符 等于 /[^a-zA-Z0-9_]/
var reg = /./; //匹配单个字符,包括任何字符
var reg = /\./; //匹配字符.
var reg = /\s/; //匹配空格
var reg = /\S/; //匹配非空白字符
var reg = /\bh/; //以h开头
var reg = /\b/ // \b 匹配单词边界
if (reg.exec(str) === null) {
alert('匹配失败');
}
</script>
正则-量词
<script>
var str = "1233345aaa";
// var str = "100,1000 or 10000?";
var reg = /\d{3}/; //{x} 匹配前一项x次
var reg = /\d{3,}/; //{x} 匹配前一项至少x次,贪婪模式 1233345
var reg = /\d{3,}?/; //{x} 匹配前一项至少x次,加上?号变成懒惰模式 123
var reg = /\d{3,4}/g; //{3,4} 匹配前一项至少x次,至多y次
var reg = /\d+/g; //匹配前一项至少1次 同{1,}
var reg = /\d*/g; //匹配前一项0次或多次
var reg = /\d?/g; //匹配前一项0次或1次
var reg = /^n/; //匹配任何开头为n的字符串
var reg = /n$/; //匹配任何结尾为n的字符串
if (reg.exec(str) === null) {
alert("匹配失败");
} else {
console.log(reg.exec(str));
}
</script>
select条目对象
<body>
<select name="" id="prov"></select>
</body>
<script>
var osel = document.getElementById("prov");
var opt = new Option("河南省", "410000", true, true); //创建了一个option对象,条目对象
var opt2 = new Option("北京市", "110000", true, true); //创建了一个option对象,条目对象
osel.add(opt); //河南省的option添加到select
osel.add(opt2, opt); //把北京市添加到河南省的前面
创建一个option元素对象
new Option(参数1,参数2,参数3,参数4)
参数1:可选 Option标签的文本值
参数2:可选 Option标签上value值
参数3:可选, 布尔值 默认是false Option标签是否默认被选中,若为true,表示选中状态
参数4:可选, 布尔值 默认是false 参数3默认选中是否有效
</script>
常用的正则表达式:
1、手机号码:/^(13[0-9]|14[5|7]|15[0|1|2|3|5|6|7|8|9]|18[0|1|2|3|5|6|7|8|9])\d{8}$/
2、国内电话号码:/\d{3}-\d{8}|\d{4}-\d{7}/
3、身份证号:/(^\d{15}$)|(^\d{18}$)|(^\d{17}(\d|X|x)$)/
或者 /^[1-9]\d{5}(18|19|([23]\d))\d{2}((0[1-9])|(10|11|12))(([0-2][1-9])|10|20|30|31)\d{3}[0-9Xx]$/
4、用户名:/^[a-zA-Z0-9_]{4,16}$/ (4-16位,由数字、子母下划线组成)
5、电子邮箱:/^([a-zA-Z0-9]+[_|\_|\.]?)*[a-zA-Z0-9]+@([a-zA-Z0-9]+[_|\_|\.]?)*[a-zA-Z0-9]+\.[a-zA-Z]{2,3}$/
6、日期:简单判定:/^\d{4}(\-)\d{1,2}\1\d{1,2}$/
7、QQ号:/^[1-9][0-9]{4,10}$/ (5-11位)
8、微信号: /^[a-zA-Z]([-_a-zA-Z0-9]{5,19})+$/(6至20位,以字母开头,由字母,数字,减号,下划线组成)
9、密码强度:/^.*(?=.{6,})(?=.*\d)(?=.*[A-Z])(?=.*[a-z])(?=.*[!@#$%^&*? ]).*$/(最少6位,包括至少1个大写字母,1个小写字母,1个数字,1个特殊字符)
10、正整数:/^\d+$/
11、负整数:/^-\d+$/
12、整数:/^-?\d+$/
13、正数:/^\d*\.?\d+$/
14、负数:/^-\d*\.?\d+$/
15、数字:/^-?\d*\.?\d+$/
16、URL:/^((https?|ftp|file):\/\/)?([\da-z\.-]+)\.([a-z\.]{2,6})([\/\w \.-]*)*\/?$/
17、ipv4地址:/^(?:(?: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]?)$/
18、十六进制颜色:/^#?([a-fA-F0-9]{6}|[a-fA-F0-9]{3})$/
19、车牌号:/^[京津沪渝冀豫云辽黑湘皖鲁新苏浙赣鄂桂甘晋蒙陕吉闽贵粤青藏川宁琼使领A-Z]{1}[A-Z]{1}[A-Z0-9]{4}[A-Z0-9挂学警港澳]{1}$/
20、包含中文:/[\u4E00-\u9FA5]/