one 个别特例
<!DOCTYPE html>
<html lang="en">
<head>
<meta charset="UTF-8">
<title>Document</title>
</head>
<body>
<script type="text/javascript">
var reg = /^.$/;
console.log(reg.test("a")); // true
console.log(reg.test("5")); // true
console.log(reg.test("\n")); // false
var reg = /^[.]$/;
console.log(reg.test("a")); // false
console.log(reg.test("5")); // false
console.log(reg.test("\n")); // false
console.log(reg.test(".")); // true
var reg = /^[\d]+$/; // 此处\d仍然表示0-9任意一个数字
console.log(reg.test("abc"));//false
console.log(reg.test("abc9"));//false
console.log(reg.test("977"));//true
// 匹配 "[object bbb]"
</script>
</body>
</html>
two 一个简单的表单验证的实例
<!DOCTYPE html>
<html lang="en">
<head>
<meta charset="UTF-8">
<meta name="viewport" content="width=device-width, initial-scale=1.0">
<meta http-equiv="X-UA-Compatible" content="ie=edge">
<title>Document</title>
</head>
<body>
<form action="right.html">
用户名:<input type="text" name="" id="userName"><span id="s1"></span><br>
密码:<input type="text" name="" id="psw"><span id="s2"></span><br>
<input type="radio" name="sex" id="">男
<input type="radio" name="sex" id="">女<span id="s3"></span><br>
<input type="submit" value="提交">
</form>
<script>
function $(id) {
return document.getElementById(id);
}
// 表单绑定提交事件
var oForm = document.querySelector("form");
var userName = document.querySelector("#userName");
var psw = document.querySelector("#psw");
//验证用户名的合法性
var flagName = null;
userName.onblur = function(){
var reg = /^\w{3,6}$/;
if(!reg.test(userName.value)){
flagName = false
$('s1').innerText = '用户名不合法'
}else{
$('s1').innerText = '用户名合法'
flagName = true;
}
}
var flagPsw = null;
psw.onblur = function(){
var regone = /^.{6,}$/;
if(!regone.test(psw.value)){
$('s2').innerText = '密码不合法'
flagPsw = false;
}else{
$('s2').innerText = '密码合法'
flagPsw = true
}
}
flagsex = null;
function checksex(){
var inputs = document.getElementsByName('sex');
for(var i = 0;i<inputs.length;i++){
if(inputs[i].checked){
flagsex = true;
}else{
$('s3').innerText = '请选择性别'
flagsex = false
}
}
}
oForm.onsubmit = function(){
checksex();
if(flagName && flagPsw && flagsex){
alert('可以了')
}
return false;
}
</script>
</body>
</html>
three 常用到的正则表达式方法
<!DOCTYPE html>
<html>
<head>
<title></title>
</head>
<body>
<script type="text/javascript">
//正则表达式方法 exec
// exec 方法受参数 g 的影响。若指定了 g,则下次调用 exec 时,会从上个匹配的 lastIndex 开始查找
//exec 查找并返回当前的匹配结果,并以数组的形式返回
// var reg = /\d+/g;
// var str = "123哈哈456嘿嘿789呵呵";
// var arr = reg.exec(str);//123
// var arr2 = reg.exec(str);//456
// var arr3 = reg.exec(str);//789
// console.log(arr,arr2,arr3);
//字符串方法 match
// 如果指定了参数 g,那么 match 一次返回所有的结果,以数组的形式
// var str = "123哈哈456嘿嘿789呵呵";
// var reg = /\d+/g;
// var arr = str.match(reg);
// var arr1 = str.match(reg);
// console.log(arr); // 123,456,789
//字符串方法 search
// var str = "123哈哈456嘿嘿789呵呵";
// var reg = /[\u4e00-\u9fa5]+/g;
// var index = str.search(reg);
// console.log(index);//3
//replace
var str = "123哈哈456嘿嘿789呵呵";
str = str.replace(/\d+/g,function(item) {
console.log(item);
return item+":";
})
console.log(str);
// // 项目中常用的正则表达式
// // 手机号码 1 必须11位数 2 以1开头
// var reg = /^1\d{10}$/; // /^1[0-9]{10}$/
// // 中文姓名 1 中文汉字 2 ****·****
// var reg2 = /^[\u4e00-\u9fa5]{2,}(·[\u4e00-\u9fa5]{2,})?$/
// // 有效数字 +12.34 12 0-9 多位数 第一位非0 其他位数任意 12.0
// var reg3 = /^[+-]?(\d|([1-9]\d+))(\.\d+)?/;
// // 邮箱 用户名@163.com ****.** ****.**.** ***.**.**.** ***-***-***.**
// // 1 用户名 数字 字母 下划线 — . 不能以.或-开头 不能连续—或.
// var reg4 = /^\w+([-.]\w+)*@[a-zA-Z0-9]+([-.][a-zA-Z0-9]+)(\.[a-zA-Z0-9]+)$/;
</script>
</body>
</html>