【简介】感谢网友“雕龙文库”参与投稿,这里小编给大家分享一些,方便大家学习。
js正则表达式语法?: 匹配前面的表达式零次或一次{n} : 匹配确定的n次,n为非负整数{n,} : 匹配至少n次,n为非负整数{n,m} : 匹配至少n次,至多m次,n和m均为非负整数且n<=m(*,+,{n,m})? : 非贪婪匹配模式,那么,js正则表达式语法?一起来了解一下吧。
split可以用正则吗
javascript的17种正则表达式:
"^\\d+$"//非负整数(正整数+0)。
"^[0-9]*[1-9][0-9]*$"//正整数。
"^((-\\d+)|(0+))$"//非正圆芹空整数(负整数+0)。
"^-[0-9]*[1-9][0-9]*$"//负整数。
"^-?\\d+$"//整数。
"^\\d+(\\.\\d+)?$"//非负浮点数(正浮点数+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+)?)|(0+(\\.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+)?$"//浮点数。
主要用途:
正则表达式一种通用的工具,在JavaScript、PHP、Java、Python、C++等几乎所有的编程语言中都能使用;但是,不同编程语言对正则表达式语法的支持不尽相同,有的编程语言支持所有的语法,有的仅支持一个子集。
js字符串转换正则表达式
正则表达式(英语:Regular Expression,在代码中常简写为regex、regexp或RE)使用单个字符串来描述、匹配一系列符合某个句法规则的字符串搜索模式。
搜索模式可用于文本搜索和文本替换。
正则表达式是由一个字符序列形成的搜索模式。
当你在文本中搜索数据时,你可以用搜索模式来描述你要查询的内容。
正则表达式可以是一个简单的字符档槐,或一个更复杂的模式。
正则表达式可用于所有文本搜索和文本替换的操作。
语法
/正则表达式主扒宽体/修饰符(可选)其中修饰符是可选的。
在 JavaScript 中,正则表达式通常用于两个字符串方法 : search() 和 replace()。
search() 方法 用于检索字符串中指定的子字符串,或检索与正则表达式相匹配的子字符串,并返回子串的起始位置。
replace() 方法 用于在字符串中用一些字符替换另一些字符,或替换行此友一个与正则表达式匹配的子串。
search() 方法使用正则表达式
实例:
使用正则表达式搜索 "php" 字符串,且不区分大小写:
var str = "Visit php!";
var n = str.search(/php/i);输出结果为:
6
search() 方法使用字符串
search 方法可使用字符串作为参数。
js关闭表单
用户名正则
//用户名正则,4到16位(字母,数字,下划线,减号)
var uPattern = /^[a-zA-Z0-9_-]{4,16}$/;
//输出 true
console.log(uPattern.test("iFat3"));
密码强度正则
//密码强度正则,最少6位,包括至少1个大写字母,1个小写字母,1个数字,1个特殊字符
var pPattern = /^.*(?=.{6,})(?=.*\d)(?=.*[A-Z])(?=.*[a-z])(?=.*[!@#$%^&*? ]).*$/;
//输出 true
console.log("=="+pPattern.test("iFat3#"));
整数正则
//正基悉整数正则
var posPattern = /^\d+$/;
//负整数正则
var negPattern = /^-\d+$/;
//整数正则
var intPattern = /^-?\d+$/;
//输出 true
console.log(posPattern.test("42"));
//输出 true
console.log(negPattern.test("-42"));
//输出 true
console.log(intPattern.test("-42"));
数字正则
可以是整数也可以是浮点数
//正数正则
var posPattern = /^\d*\.?\d+$/;
//负数正则
var negPattern = /^-\d*\.?\d+$/;
//数字正则
var numPattern = /^-?\d*\.?\d+$/;
console.log(posPattern.test("42.2"));
console.log(negPattern.test("-42.2"));
console.log(numPattern.test("-42.2"));
Email正则
//Email正则
var ePattern = /^([A-Za-z0-9_\-\.])+\@([A-Za-z0-9_\-\.])+\.([A-Za-z]{2,4})$/;
//输出 true
console.log(ePattern.test("65974040@qq.com"));
手机号码正则
//手机号正则
var mPattern = /^[1][3][0-9]{9}$/;
//输出 true
console.log(mPattern.test("13900000000"));
身份证号正则
//身份证号(18位)正则
var cP = /^[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]$/;
//输出 true
console.log(cP.test("11010519880605371X"));
URL正则
//URL正则
var urlP= /^((https?|ftp|file):\/\/)?([\da-z\.-]+)\.([a-z\.]{2,6})([\/\w \.-]*)*\/?$/;
//输出 true
console.log(urlP.test("http://42du.cn"搏帆乎));
IPv4地址正则
//ipv4地址正则
var ipP = /^(?:(?: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]?)$/;
//输出 true
console.log(ipP.test("115.28.47.26"));
十六进制颜色正则
//RGB Hex颜色正则
var cPattern = /^#?([a-fA-F0-9]{6}|[a-fA-F0-9]{3})$/;
//输出 true
console.log(cPattern.test("#b8b8b8"));
日期正则
//日期正则,轿空简单判定,未做月份及日期的判定
var dP1 = /^\d{4}(\-)\d{1,2}\1\d{1,2}$/;
//输出 true
console.log(dP1.test("2017-05-11"));
//输出 true
console.log(dP1.test("2017-15-11"));
//日期正则,复杂判定
var dP2 = /^(?:(?!0000)[0-9]{4}-(?:(?:0[1-9]|1[0-2])-(?:0[1-9]|1[0-9]|2[0-8])|(?:0[13-9]|1[0-2])-(?:29|30)|(?:0[13578]|1[02])-31)|(?:[0-9]{2}(?:0[48]|[2468][048]|[13579][26])|(?:0[48]|[2468][048]|[13579][26])00)-02-29)$/;
//输出 true
console.log(dP2.test("2017-02-11"));
//输出 false
console.log(dP2.test("2017-15-11"));
//输出 false
console.log(dP2.test("2017-02-29"));
QQ号码正则
//QQ号正则,5至11位
var qqPattern = /^[1-9][0-9]{4,10}$/;
//输出 true
console.log(qqPattern.test("65974040"));
微信号正则
//微信号正则,6至20位,以字母开头,字母,数字,减号,下划线
var wxPattern = /^[a-zA-Z]([-_a-zA-Z0-9]{5,19})+$/;
//输出 true
console.log(wxPattern.test("RuilongMao"));
车牌号正则
//车牌号正则
var cPattern = /^[京津沪渝冀豫云辽黑湘皖鲁新苏浙赣鄂桂甘晋蒙陕吉闽贵粤青藏川宁琼使领A-Z]{1}[A-Z]{1}[A-Z0-9]{4}[A-Z0-9挂学警港澳]{1}$/;
//输出 true
console.log(cPattern.test("京K39006"));
包含中文正则
//包含中文正则
var cnPattern = /[\u4E00-\u9FA5]/;
//输出 true
console.log(cnPattern.test("42度"));按 Ctrl+C 按 Ctrl+C
Regex_Phones: /^[0-9],$/, // 数字和逗号
Regex_Ident: /^([a-zA-Z0-9]){1,50}$/, //英文、数字且不能包含英文标点和特殊符号(渠道标识)
Regex_IdentName: /^([\u2E80-\u9FFF]|[a-zA-Z0-9]){1,50}$/, //中文、英文、数字且不能包含英文标点和特殊符号(渠道名称)
Regex_MondyNum: /^\d+(\.\d{1,2})?$/, //金额,允许两位小数
Regex_MondyCh: /^[\u4e00-\u9fa5]+$/, //只能为中文
Regex_PhoneNum: /(^(([0\+]\d{2,3}-)?(0\d{2,3})-)(\d{7,8})(-(\d{3,}))?$)|(^0{0,1}1[3|4|5|6|7|8|9][0-9]{9}$)/, //电话号码和手机
Regex_ZNum: /^[1-9]\d*$/ //正整数
Regex_Name: /^[a-zA-Z][a-zA-Z0-9_@]{0,30}$/, // 用户名
Regex_NickName: /^[\u4E00-\u9FA5A-Za-z0-9_\-]+$/, // 中文/英文/数字, (昵称、组名、朋友备注名、内容名称、书名、页名)
Regex_Passport: /^1[45][0-9]{7}$|G[0-9]{8}$|P\.[0-9]{7}$|S[0-9]{7,8}$|D[0-9]{7,8}$/, // 护照
Regex_BizLience: /^([0-9a-zA-Z]{18}$|\d{15}$)/, // 营业执照,三证合一的是18位
Regex_isExitZh:/[\u4E00-\u9FA5\uF900-\uFA2D]/, // 验证是否存在中文
Regex_price:/^\d+(\.\d{1,2})?$/ // 数字 . 最多两位有效数字
Regex_EnghlishNum:/^(?=.*\d)(?=.*[a-z])[a-zA-Z\d]{6,20}$/ //6至20位英文和数字组合
Regex_Phone: /^0?(13[0-9]|15[012356789]|18[0-9]|14[57])[0-9]{8}$/, // 手机号
Regex_Mobile: /^0?(13[0-9]|15[012356789]|18[0-9]|14[57])[0-9]{8}$/, // 手机号
Regex_Card: /\\d{14}[[0-9],0-9xX]/, // 身份证号
Regex_Email: /^[a-zA-Z0-9]+([._\\-]*[a-zA-Z0-9])*@([a-zA-Z0-9]+[-a-zA-Z0-9]*[a-zA-Z0-9]+.){1,63}[a-zA-Z0-9]+$/, // 邮箱
Regex_RealName: /^[a-zA-Z\u4e00-\u9fa5]{0,}$/, // 真实姓名、朋友昵称、朋友全称、组名称、组标签
Regex_text: /^[\u4e00-\u9fa5]{0,}$/, // 地区 、省份、城市
正则表达式或的用法
一. 正则表达式
正则表达式:其实就是一种匹配规则,用于检索字符串
定义正则表达式的两种方式:1.直接定义 2.构造函数定义
那么正则表达式正则强大的地方是它可以写 通配符(拥有特殊含义的字符)
二.通配符
\w 表示:字母、数字、下划线
\W 表示:除了字母、数字、下划线以外的字符
\d 表示:数字
\D 表示:非数字
^ 表示:以^符号后面的第一个字符开头
表示:以表示:以符号前面的第一个字符结尾
{n} 表示:重复n次
{n,m} 表示:重复n到m次
[xyz] 表示:其中任意一个字符
+ 表示:重复前一项1次或多次 等价于 {1,}
* 表示:重复前一项0次或多次 等价于 {0,}
? 表示:重复前一项0次或1次 等价于 {0,1}
. 表示:除了换行符以外的任意一个字符
\. 表示:.字符 ^ 表示:^ \表派搜示:表示:
可以用()将多个局竖字符作为一个整体
\w 等价于 [0-9a-zA-Z_]
| 表示:或者
[\u4E00-\u9FA5] 是常用汉字的unicode编码范围
三. 正则练习
四. 正则表达式配合字符串的方法
replace()方法
默认情况下,replace()方法,只会替换字符串中匹配的第一段内容
使用正则表达式,添加全局匹配修饰符g,可以替换匹配全部内容
使用正则表达式,添加忽略大小写修饰符i,在匹配内容时会忽略大小写
search()方法
可以通过正则表达式查找位置
五. 添加学生练习
.err{
color: red;
}
.ok{
color: green;
}
//获取姓名文本框
let name = document.querySelector('#name')
//获取年龄文本框
let age = document.querySelector('#age')
//表单的提交事件
document.querySelector('form').onsubmit = function(){
// 返回true提交表单,返回false不提交表单
if(checkName() & checkAge()){
return true
}else{
return false
}
}
//姓名文本框失去焦点
name.onblur = checkName
//验证姓名
function checkName(){
//定义验证姓名的正则
let reg = /^[\u4E00-\u9FA5]{2,4}$/
// 调用验证方法
return checkInput("#nameMsg",name,reg,'姓名正确','姓名必须是2-4位汉字')
}
//年龄文本框失去焦点
age.onblur = checkAge
//验证年龄
function checkAge(){
//定义验证年龄的正则
let reg = /^\d{1,2}$|^1([0-1]\d)|20$/
// 调用验证方法
return checkInput("#ageMsg",age,reg,'年龄正确','年龄必须是0-120之间')
}
//验证方法,参数分别是:span元素Id,表单元素对象,正则规则,验证成功消息,验证失败消息
function checkInput(spanId,_this,reg,okMsg,errMsg){
// 获取消息span
let span = document.querySelector(spanId)
//获取信息
let val = _this.value
if(!reg.test(val)){
span.className="err"
span.innerHTML = errMsg
return false //验证失败返回false
}else{
span.className="ok"
span.innerHTML = okMsg
return true //验证成功返回true
}
}
中文正则表达式
RegExp是JS的正则表达式对象,实例化一个RegExp对象有 字面量 和 构造函数 2种方式。
字面量实例化RegExp对数辩象
var reg=/js/gi;
开始和结束的斜线/是正则表达式的边界,//中间的文本是正则表达式文本,后面的gi是正则表达式的修饰符。
构造函数实例化RegExp对象
var reg=new Regex(‘js’,’gi’);
第一个参数是正则表达式文本,第二个参数是正则表达式修饰符。
global:RegExp 对象是否具有标志 g。
ignoreCase:RegExp 对象是否具有标志 i。
lastIndex:一个整数,标示开始下一次匹配的字符位置。
multiline:RegExp 对象是否具有标志 m。
source:正则表达式的源文本。
RegExp 对象有 3 个方法:test()、exec() 以及 compile()。
test()
test() 方法检索字符串中的指定值。返回值是 true 或 false。
以上就是js正则表达式语法的全部内容,var reg=/js/gi;开始和结束的斜线/是正则表达式的边界,//中间的文本是正则表达式文本,后面的gi是正则表达式的修饰符。构造函数实例化RegExp对象 var reg=new Regex(‘js’,’gi’);第一个参数是正则表达式文本,内容来源于互联网,信息真伪需自行辨别。如有侵权请联系删除。