JS中正则表达式验证

1. 正则表达式验证邮箱问题

founction checkEmail(){

var ema = document.getElementById("ema").value;

var reg = /^[a-zA-Z0-9_-] + @[a-zA-z0-9_-] + (\.[a-zA-Z0-9_-]+)+$/;

console.log(reg.test(ema));//true

}


2.正则表达式验证手机号码问题(两个都行)

function checkPhone(){ 
    var phone = document.getElementById('phone').value;
    if(!(/^1[34578]\d{9}$/.test(phone))){ 
        alert("手机号码有误,请重填");  
        return false; 
    } 
}
function checkPhone(){ 
    var phone = document.getElementById('phone').value;
    if(!(/^1(3|4|5|7|8)\d{9}$/.test(phone))){ 
        alert("手机号码有误,请重填");  
        return false; 
    } 
}
3.正则表达式验证固定电话

 function checkTel(){
 var tel = document.getElementById('tel').value;
if(!/^(\(\d{3,4}\)|\d{3,4}-|\s)?\d{7,14}$/.test(tel)){
alert('固定电话有误,请重填');
return false;
}
}
4.正则表达式验证身份证

//身份证正则表达式(15位)
isIDCard1=/^[1-9]\d{7}((0\d)|(1[0-2]))(([0|1|2]\d)|3[0-1])\d{3}$/;
//身份证正则表达式(18位)
isIDCard2=/^[1-9]\d{5}[1-9]\d{3}((0\d)|(1[0-2]))(([0|1|2]\d)|3[0-1])\d{4}$/;
身份证正则合并:(^\d{15}$)|(^\d{17}([0-9]|X)$)
5.其他问题

提取信息中的网络链接:(h|H)(r|R)(e|E)(f|F) *= *('|")?(\w|\\|\/|\.)+('|"| *|>)?
提取信息中的邮件地址:\w+([-+.]\w+)*@\w+([-.]\w+)*\.\w+([-.]\w+)*
提取信息中的图片链接:(s|S)(r|R)(c|C) *= *('|")?(\w|\\|\/|\.)+('|"| *|>)?
提取信息中的IP地址:(\d+)\.(\d+)\.(\d+)\.(\d+)
提取信息中的中国电话号码(包括移动和固定电话):(\(\d{3,4}\)|\d{3,4}-|\s)?\d{7,14}
提取信息中的中国邮政编码:[1-9]{1}(\d+){5}
提取信息中的中国身份证号码:\d{18}|\d{15}
提取信息中的整数:\d+
提取信息中的浮点数(即小数):(-?\d*)\.?\d+
提取信息中的任何数字 :(-?\d*)(\.\d+)?
提取信息中的中文字符串:[\u4e00-\u9fa5]*
提取信息中的双字节字符串 (汉字):[^\x00-\xff]*
6.正则表达式知识

原文链接:http://caibaojian.com/javascript-regexp.html

JavaScript元字符

正则表达式元字符是包含特殊含义的字符,他们有一些功能,可以控制匹配模式的方式,反斜杠后的元字符将失去其特殊含义。·

元字符/元符号匹配
\

在字面意义和特殊意义之间进行切换。例如w表示w的特殊意义而不是字面值w,但是$表示不使用$的特殊意义而是使用$字符本身

^字符串的开头
$字符串的结尾
*零次或者多次
+一次或者多次
?零次或者一次
.除换行符外的任何字符
\b单词边界
\B非单词边界
\d0-9的任何数字(与[0-9]相同)
D任何非数字
\f换页符
\n换行符
\r回车符
\s任何一个空白字符(与[fnrtv]相同)
\S任何一个非空白字符
\t制表符
\v垂直制表符
\w任何字母、数字以及下划线(与[a-zA-Z0-9_]相同)
\W除数字、字母及下划线外的其他字符

\xnn

十六进制数字nn定义的ASCII字符
\onn八进制数字nn定义的ASCII字符
\cX控制字符X
[abcde]与其中任何字符匹配的字符串
[^abcde]字符补集,与其中任何字符都不匹配的字符集
[a-e]与其中的字符范围匹配的字符集
[\b]退格字符的字面量意义(不同于b)
{n}前面的字符正好出现n次
{n,}前面的字符至少出现n次
{m,n}前面的字符至少出现m次,最多n次
()一个组,可以在后面引用它
x|yx或y

o+ 表示1个或者多个o

x? 表示0个或者1个x

x* 表示0个或者多个x

(xyz)+匹配至少一个(xyz)

x{m,n} 匹配至少m个,最多n个x


来源: 前端开发博客
  • 0
    点赞
  • 3
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
### 回答1: 可以使用以下正则表达式进行匹配: 纯数字:^\d{6,20}$ 纯字母:^[a-zA-Z]{6,20}$ 纯符号:^[^\u4e00-\u9fa5a-zA-Z\d]{6,20}$ 其,^\d{6,20}$ 表示以数字开头,后面跟着 6 到 20 个数字;^[a-zA-Z]{6,20}$ 表示以字母开头,后面跟着 6 到 20 个字母;^[^\u4e00-\u9fa5a-zA-Z\d]{6,20}$ 表示以非文、非字母、非数字的字符开头,后面跟着 6 到 20 个这样的字符。 ### 回答2: 在HTML,使用正则表达式可以限制输入框的字符个数以及其类型。下面是针对6-20位字符且纯数字、纯字母、纯符号的正则表达式解释: 1. 纯数字的正则表达式:^[0-9]{6,20}$ 这个正则表达式要求输入框的字符必须为6-20位纯数字。具体解释如下: - ^[0-9] 表示以数字开头; - {6,20} 表示数字长度从6到20位; - $ 表示以数字结尾。 2. 纯字母的正则表达式:^[a-zA-Z]{6,20}$ 这个正则表达式要求输入框的字符必须为6-20位纯字母。具体解释如下: - ^[a-zA-Z] 表示以字母开头,大小写不限; - {6,20} 表示字母长度从6到20位; - $ 表示以字母结尾。 3. 纯符号的正则表达式:^[!@#$%^&*()_+\-=\[\]{};':"\\|,.<>\/?]{6,20}$ 这个正则表达式要求输入框的字符必须为6-20位纯符号。具体解释如下: - ^[!@#$%^&*()_+\-=\[\]{};':"\\|,.<>\/?] 表示以符号开头,符号需要转义,否则会被正则表达式的特殊字符解析; - {6,20} 表示符号长度从6到20位; - $ 表示以符号结尾。 以上是使用正则表达式限制HTML输入框的字符类型和个数的解释,你可以根据自己的需求选择适合的正则表达式来实现相应的功能。 ### 回答3: 在HTML,通过使用正则表达式可以对输入的字符串进行验证和限制。要求字符串的长度为6到20个字符,可以是纯数字、纯字母或纯符号。 首先,我们需要定义一个正则表达式模式来匹配满足条件的字符串。以下是一个可以用来检测字符串是否为纯数字的正则表达式模式: ^\\d{6,20}$ 这个模式以^开头,表示从字符串的起始位置匹配。\\d表示匹配任意数字字符。{6,20}表示前面的模式应该连续出现6到20次。$表示匹配字符串的结束位置。 同样,如果要匹配纯字母的字符串,可以使用以下正则表达式模式: ^[a-zA-Z]{6,20}$ 这个模式,[a-zA-Z]表示匹配任意大小写字母。{6,20}表示前面的模式应该连续出现6到20次。 最后,如果要匹配纯符号的字符串,可以使用以下正则表达式模式: ^[!@#$%^&*()-=_+~`\\[\\]{};:'\\",.<>/?]{6,20}$ 这个模式,方括号内的内容表示匹配任意一个字符,可以根据需要自定义符号列表。{6,20}表示前面的模式应该连续出现6到20次。 在HTML,我们可以使用JavaScript来进行正则表达式验证。通过在输入框的onblur事件调用相应的验证函数,可以对用户的输入进行实时验证。 例如,对于一个id为input1的输入框,如果要验证输入的字符串是否为纯数字,可以在JavaScript使用以下代码: ```javascript function validateNumber() { var input = document.getElementById("input1").value; var pattern = /^\d{6,20}$/; if (pattern.test(input)) { // 输入符合要求 } else { // 输入不符合要求 } } ``` 类似地,我们可以定义相应的验证函数来检测纯字母和纯符号的字符串。通过在HTML调用这些函数,我们可以实现对用户输入的验证和限制。

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值