1.正则表达式?
用于文本中搜索、匹配或替换特定形式的文本
2.表达式的格式
/‘正则表达式字符串’/gim
3.元字符
元字符 | 功能 |
---|---|
\d | 匹配一个数字 |
\D | 匹配一个非数字 |
\w | 匹配一个数字/字母/下划线 |
\W | 匹配一个非数字/字母/下划线 |
\s | 匹配一个空白符 |
\S | 匹配一个非空白符 |
. | 匹配一个除回车,换行外的任何单个字符 |
4.使用一下^和$
var reg = /ipad/;//包含ipad
var str = 'apple ipad is cool';
console.log(reg.test(str));
// true
var reg = /ipad/;//包含ipad
var str = 'apple Ipad is cool';
console.log(reg.test(str));
// false
var reg = /ipad/ig;//包含ipad,全局匹配,不区分大小写
var str = 'apple Ipad is cool';
console.log(reg.test(str));
// true
var reg = /^ipad/ig;//以ipad开头,全局匹配,不区分大小写
var str = 'apple Ipad is cool';
console.log(reg.test(str));
// false
var reg = /ipad$/ig;//以ipad结束,全局匹配,不区分大小写
var str = 'apple Ipad is cool';
console.log(reg.test(str));
// false
var reg = /ipad\$/ig;//包含ipad$,全局匹配,不区分大小写
var str = 'apple Ipad$$$$ is$ cool';
console.log(reg.test(str));
// true
5.验证手机号的正则
/^1[3|4|5|6|7|8|9]{1}[0-9]{9}/
分析:
手机号的特点:纯数字、1开头、共11位、判断哪家运营商(电信、移动、联通)
需求:通过页面输入框输入售价好,点击提交进行分部判断
<!--html-->
电话号码:<input type="text" id="number" placeholder="请输入您的电话...">
<button onclick="num()">提交</button>
//js
var number=document.getElementById("number");
var reg3=/^1[3|4|5|6|7|8|9]{1}[0-9]{9}/;
var reg4=/^1([33]|[49]|[53]|[73]|[77]|[80]|[89]|[99]){1}[0-9]{8}/;
var reg5=/^1([30]|[31]|[32]|[45]|[55]|[56]|[66]|[71]|[75]|[76]|[85]|[86]){1}[0-9]{8}/;
var reg6=/^1[^1|2]{1}[0-9]{9}/;
function num(){
var i=reg3.test(number.value);
if(i){
if(reg4.test(number.value)){
alert("是电信号码");
}else if(reg5.test(number.value)){
alert("是联通号码");
}else if(reg6.test(number.value)){
alert("是移动号码");
}else{
alert("啥都不是");
}
}else{
alert('请输入正确的手机号');
clear();
}
}
function clear(){
document.getElementById("number").value='';
}
6.邮箱正则
/^ [A-Za-z0-9]+([_\ .][A-Za-z0-9]+)*@([A-Za-z0-9\ -]+\ .)+[A-Za-z]{2,6}$/
^ [A-Za-z0-9]+([_\ .][A-Za-z0-9]+) | @ | ([A-Za-z0-9\ -]+\ .) | [A-Za-z]{2,6} |
---|---|---|---|
开头由大小字母、数字-、.组成 | 转义字符@ | 大小字母、数字、-、加上. | 字符结尾长度2-6字母 |
<!--html-->
邮箱:<input type="text" id="number" placeholder="请输入您的邮箱..." onclick="num()">
<span id="span_o" style="display: none;color: lawngreen;">√邮箱符合</span>
<span id='span_n' style="display: none;color: #FF0000;">ⓧ邮箱不正确</span>
//js
<script type="text/javascript">
var number=document.getElementById("number");
var span_o=document.getElementById("span_o");
var span_n=document.getElementById("span_n");
var demo=/^[A-Za-z0-9]+([_\.][A-Za-z0-9]+)*@([A-Za-z0-9\-]+\.)+[A-Za-z]{2,6}$/;
function num(){
if(demo.test(number.value)){
span_o.style.display='block';
}else{
span_n.style.display='block';
}
}
</script>
7.身份证号码的正则
/^ [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]$/;
<!--html-->
身份证号:<input type="text" id="number" placeholder="请输入您的身份证号码..." onclick="num()">
<span id="span_o" style="display: none;color: lawngreen;">√符合</span>
<span id='span_n' style="display: none;color: #FF0000;">ⓧ不正确</span>
var number=document.getElementById("number");
var span_o=document.getElementById("span_o");
var span_n=document.getElementById("span_n");
var demo= /^[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]$/;;
function num(){
if(demo.test(number.value)){
span_o.style.display='block';
}else{
span_n.style.display='block';
}
}