本文目录一览:
- 1、【总结】js正则表达式及验证函数
- 2、JS中正则表达式只有3种匹配模式(没有单行模式)详解
- 3、JS正则表达式基础认知
- 4、js 正则表达式 //-是什么意思
- 5、js如何正则验证密码
- 6、js 正则验证不能含有中文与特殊字符
【总结】js正则表达式及验证函数
用户名或昵称 : ^[/u4e00-/u9fa5A-Za-z0-9-_]*$——只能中英文,数字,下划线,减号
用户密码: ^[a-zA-Z]/w{5,17}$ 正确格式为——以字母开头,长度在6-18之间,只能包含字符、数字和下划线。
汉字 :^[/u4e00-/u9fa5],{0,}$
Email地址 :^/w+[-+.]/w+)*@/w+([-.]/w+)*/./w+([-.]/w+)*$
^[a-zA-Z0-9_-]+@[a-zA-Z0-9_-]+(/.[a-zA-Z0-9_-]+)+$
IP地址 :^(/d{1,2}|1/d/d|2[0-4]/d|25[0-5])(/.(/d{1,2}|1/d/d|2[0-4]/d|25[0-5])){3}$
日期 格式是否为YYYY-MM-DD:^/d{4}-(0?[1-9]|1[0-2])-(0?[1-9]|[1-2]/d|3[0-1])$/;
时间 格式是否为hh:mm:ss:^([0-1]//d|2[0-3]):[0-5]//d:[0-5]//d$
InternetURL :^http://([/w-]+/.)+[/w-]+(/[/w-./?%=]*)?$ ;^[a-zA-z]+://(w+(-w+)*)(.(w+(-w+)*))*(?S*)?$
^http:////[A-Za-z0-9]+/.[A-Za-z0-9]+[//=/?%/-_~`@[/]/':+!]*([^/"/"])*$
电话号码 :^(/(/d{3,4}/)|/d{3,4}-)?/d{7,8}$——正确格式为:XXXX-XXXXXXX,XXXX-XXXXXXXX,XXX-XXXXXXX,XXX-XXXXXXXX,XXXXXXX,XXXXXXXX。
^((/(/d{2,3}/))|(/d{3}/-))?(/(0/d{2,3}/)|0/d{2,3}-)?[1-9]/d{6,7}(/-/d{1,4})?$
手机号码 :^0?(13[0-9]|15[012356789]|18[0236789]|14[57])[0-9]{8}$:打长途时一般要在手机号码前加0。
身份证号 (15位或18位数字):^/d{15}(/d{2}[A-Za-z0-9])?$
QQ号码 : /^[1-9]/d{4,8}$/
验证是否含有 ^%',;=?$/" 等字符:[^%',;=?$/x22]+
验证一年的12个月:^(0?[1-9]|1[0-2])$ 正确格式为:“01”-“09”和“1”“12”
验证一个月的31天:^((0?[1-9])|((1|2)[0-9])|30|31)$ 正确格式为:01、09和1、31。
验证数字:^[0-9]*$
验证n位的数字:^/d{n}$
验证至少n位数字:^/d{n,}$
验证m-n位的数字:^/d{m,n}$
验证零和非零开头的数字:^(0|[1-9][0-9]*)$
验证有两位小数的正实数:^[0-9]+(.[0-9]{2})?$
验证有1-3位小数的正实数:^[0-9]+(.[0-9]{1,3})?$
验证非零的正整数:^/+?[1-9][0-9]*$
验证非零的负整数:^/-[1-9][0-9]*$
验证非负整数(正整数 + 0) ^/d+$
验证非正整数(负整数 + 0) ^((-/d+)|(0+))$
验证长度为3的字符:^.{3}$
验证由26个英文字母组成的字符串:^[A-Za-z]+$
验证由26个大写英文字母组成的字符串:^[A-Z]+$
验证由26个小写英文字母组成的字符串:^[a-z]+$
验证由数字和26个英文字母组成的字符串:^[A-Za-z0-9]+$
验证由数字、26个英文字母或者下划线组成的字符串:^/w+$
整数:^-?/d+$
非负浮点数(正浮点数 + 0):^/d+(/./d+)?$
正浮点数: ^(([0-9]+/.[0-9]*[1-9][0-9]*)|([0-9]*[1-9][0-9]*/.[0-9]+)|([0-9]*[1-9][0-9]*))$
非正浮点数(负浮点数 + 0):^((-/d+(/./d+)?)|(0+(/.0+)?))$
负浮点数: ^(-(([0-9]+/.[0-9]*[1-9][0-9]*)|([0-9]*[1-9][0-9]*/.[0-9]+)|([0-9]*[1-9][0-9]*)))$
浮点数 :^(-?/d+)(/./d+)?$
双精度:^[-/+]?/d+(/./d+)?$
//判断输入的字符是否为中文
function IsChinese(){
var str = document.getElementById('str').value.trim();
if(str.length!=0){
reg=/^[/u0391-/uFFE5]+$/;
if(!reg.test(str)){
alert("对不起,您输入的字符串类型格式不正确!");
}
}
}
//判断输入的数字不大于某个特定的数字
function MaxValue(){
var val = document.getElementById('str').value.trim();
if(str.length!=0){
reg=/^[-+]?/d*$/;
if(!reg.test(str)){//判断是否为数字类型
if(valparseInt('123')){//“123”为自己设定的最大值
alert('对不起,您输入的数字超出范围');
}
}
}
}
//为上面提供各个JS验证方法提供.trim()属性
String.prototype.trim=function(){
return this.replace(/(^/s*)|(/s*$)/g, "");
}
var patterms = newObject();
//验证IP
patterms.ip = /^(/d{1,2}|1/d/d|2[0-4]/d|25[0-5])(/.(/d{1,2}|1/d/d|2[0-4]/d|25[0-5])){3}$/;
//验证EMAIL
patterms.email = /^[a-zA-Z0-9_-]+@[a-zA-Z0-9_-]+(/.[a-zA-Z0-9_-]+)+$/;
//验证函数
functionverify(str,pat){
var thePat = patterms[pat];
if(thePat.test(str)){
return true;
}else{
return false;
}
}
//测试alert(verify("asidycom@163.com","email")+","+verify("192.168.1.1","ip")+","+verify("192.168","ip"));
本文摘自: js正则表达式验证大全
JS中正则表达式只有3种匹配模式(没有单行模式)详解
JS正则表达式对象模式仅有如下三种:
g
(全文查找出现的所有
pattern)
i
(忽略大小写)
m
(多行查找)
即没有单行匹配模式,Singleline(单行模式):更改.的含义,使它与每一个字符匹配(包括换行符/n)。
如java中
String
regex
=
"(?s)(?=interface).{0,500}(shutdown)";---------"."表示在一行。
但可以采用[/d/D]或[/w/W]或[/s/S]或(.|/s)*?来解决不能换行问题
以上这篇JS中正则表达式只有3种匹配模式(没有单行模式)详解就是小编分享给大家的全部内容了,希望能给大家一个参考,也希望大家多多支持脚本之家。
JS正则表达式基础认知
正则表达式,又叫规则表达式,英文名Regular Expression,本质是操作字符串
1、模式匹配 表单验证
2、文本检索 搜索
3、替换 过滤
简单,方便,性能高
var reg=new RegExp('规则','模式') 通过构造函数创造
var reg=/规则/模式 通过字面量创建
i 忽略大小写
g 全局
m 多行
注:不分前后顺序
str.match(正则) 返回数组 没有返回 null
str.search(正则) 返回下标 没有返回-1
str.replace(正则,替换成谁) 返回替换后的字符串
str.replace(正则,function(s){
s 符合正则条件的字符串
})
/d 数字 /[0-9]/
/s 空格
/w /[0-9a-zA-Z_]/ 单词
/D 非数字 /[^0-9]/
/S 非空白
/W 非单词 /[^0-9a-zA-Z_]/
.(点) 代表任意
/. 代表.
// 代表/
//// 代表//
// 代表/
只要有特殊意义的都要转译
+ {1,m} 若干个 最少1个最多不限
? {0,1} 可有可无
* {0,m} 可以没有,多了不限
{n} 正好n个
{n,m} 最少n个 最多m个
{n,} 最少n个,最多不限
{,m} × 没有这种写法
^ 行首
注:如果^单独使用,代表字符串行首,配合m使用会识别段落
$ 行尾
[] 中括号
1、[]里面的东西都是或的形式
2、[]里面和放范围
3、[^] 不代表行首,代表除去里面的范围
4、其他特殊符号代表本身
1、test() 一般配合^
功能:用于检测是否于正则匹配。
返回:布尔值,true匹配,false不匹配
语法:reg.test(检测的内容)
2 exec()
功能:用于检测是否于正则匹配。
返回:数组, 不匹配返回null
语法:reg.test(检测的内容)
再做验证之前:验证分两种,一种强校验,一种弱校验
(1)验证手机号 /1[23457]/d{9}/
(2)验证座机号 区号-座机号 /(0[1-9]/d-)?[1-9]/d{7}/
(3)验证qq /[1-9]/d{4,11}/
(4)实现一个trim函数 去掉收尾空格 /^/s+|/s+$/g
(5)中文 /[/u4e00-/u9fa5]/
(6)验证年龄 18-100 /^1[89]|[2-9]/d|100$/
(7)邮箱: asdsad@163.com /^/w{5,12}@[a-z0-9]{2,8}/.com$/
(8) 过滤html /[^]+/g;
1、分组 ab+ abbbb (ab)+
2、匹配子级
配合replace使用 str.replace(reg,function(s,a,b){
s是 整体
a是第一个括号的项
b是第二个括号的项
})
3、优选级 ^(1[89]|[2-9]/d|100)$
4、重复的子项
abbb /(a)(b)/2+/
今天先给大家总结到这儿,后续还会有补充
js 正则表达式 //-是什么意思
这个正则可以匹配各种 url,比如当前页面的url
具体解释:
最左最右的 / 先忽略 是正则的界定符,表示正则的开始结束
(/w+) 表示长度大于1的字符串 (/w的含义自己搜一下)
: 比较单纯就是表示 :
//// 这个表示 // 因为 / 跟上述界定符长得一样会导致程序懵逼,所以前面加了 / 来转义
([/w.]+) 表示长度大于1 由/w和 .(点) 组成的字符串
// 同上
(/S*) 除空白符号之外的的任意字符任意长度
用 () 括起来表示要在代码里捕获这里面匹配的内容
你问的问题比较基础,建议先自学一下正则。推荐下面的教程
学习正则不要急于求成,耐心看完+多实践
js如何正则验证密码
可以是这样的,必须包含字母和数字的组合,可以使用特殊字符,长度在5-20之间,应该符合你的要求:
/^(?=.*/d)(?=.*[a-zA-Z]).{5,20}$/
js 正则验证不能含有中文与特殊字符
varmyReg = /^[a-zA-Z0-9_]{0,}$/;
if(!myReg.test(input.val())) {
$.validation.tip(false, input, "用户名不能含有中文或特殊字符");
return;
}
js通过正则表达式限制input输入框只能输入英文字母和数字,不能输入中文。
input onkeyup="value=value.replace(/[^/w/.//]/ig,'')"
文本框中仅允许输入英文字母,小数点,数字,禁止输入中文字符以及其他特殊字符!
input type="text" name="username" onkeyup="value=value.replace(/[^/w/.//]/ig,'')" /
输入大于0的正整数
input onkeyup="if(this.value.length==1){this.value=this.value.replace(/[^1-9]/g,'')}else{this.value=this.value.replace(//D/g,'')}" onafterpaste="if(this.value.length==1){this.value=this.value.replace(/[^1-9]/g,'')}else{this.value=this.value.replace(//D/g,'')}"
PS:这里再为大家提供2款非常方便的正则表达式工具供大家参考使用:
JavaScript正则表达式在线测试工具:
正则表达式在线生成工具:
var temp = 'abcdefg Fw:123456 Fw:789.1011';
temp =temp.indexOf(‘.’); //匹配某个字符位置
alert(temp);��var temp = 'dsd-5555'
temp =temp.replace('-',''); //匹配某个字符必替换
alert(temp);