本文介绍了正则表达式的基本语法。学习正则表达式的基本语法是学习编程的基础。正则表达式在程序中被广泛使用。有需要的朋友跟我们编辑学学。
(推荐)JS正则知识点专题:https://www.jb51.net/article/139831.htm1
.正则表达式基本语法
两个特殊符号“”和“$”。它们的功能是分别指示字符串的开始和结束。
例子如下:
the :表示所有以 The 开头的字符串( There , The cat 等)。);
Of despair$ :表示以“Of despair”结尾的字符串;
Abc $ :开头结尾都是 Abc 的字符串——,呵呵,只有 abc 是自己的;
Notice :表示任何包含 notice 的字符串。
像上一个例子一样,如果不使用两个特殊字符,则表明要搜索的字符串在被搜索字符串3354的任何部分。
不要把它定位在某个顶部。
还有其他 * 、和?这三个符号表示一个字符或一系列字符重复的次数。
它们分别表示“没有或更多”、“一次或更多”和“没有或一次”。
这里有几个例子:
Ab* :表示一个字符串有一个A,后跟零个或几个B .( A , Ab , abbb ,……);
“Ab”:表示字符串有一个A,后面至少有一个B或更多;
“ab,”:指示字符串有一个A,后跟零或一个B;
答?B $ :表示在字符串末尾有零个或一个A,后跟一个或几个B。
您还可以使用用大括号括起来的范围来指示重复次数的范围。
Ab{2}“”:指示字符串有一个A后跟两个B(“ABB”);
Ab{2,} :指示一个字符串有一个A,后跟至少两个B。
Ab{3,5} :表示一个字符串有一个A后跟3到5个B。
请注意,您必须指定范围的下限(例如:“{0,2}”而不是“{ 2 }”)。
此外,你可能已经注意到, * ,和?相当于“{0,}”、“{1,}”和“{0,1}”。
还有一个,表示“或”运算:
“Hi hello”:指示字符串中有“Hi”或“hello”;
“EF”:它的意思是“bef”或“CDEF”;
(ab) * c :混合“a”和“b”的字符串后跟“c”;可以替换任何字符:
A.“[0-9]”:指示字符串有一个“a”,后跟一个任意字符和一个数字;
{3} $ :表示具有任意三个字符的字符串(长度为3个字符);
方括号表示允许某些字符出现在字符串中的特定位置:
[ab]:表示字符串有一个 a 或 b (相当于 ab );
[a-d]:指示字符串包含小写的“A”到“D”之一(相当于“[ABCD]”);或者[ABCD]);
“[a-za-z]”:表示以字母开头的字符串;
[0-9]% :表示百分号前有一位的数字;
,[a-zA-Z0-9]$ :表示字符串以逗号后跟字母或数字结尾。
您还可以在方括号中使用来表示不需要的字符。应该放在方括号中的第一个位置。
(例如:“% [a-za-z]%”表示百分之二的符号中不应该有字母)。
为了一个字一个字地表达出来,你必须把它写成。$ () *?{ 这些字符前面是转移字符 。
请注意,在方括号中,不需要转义字符。
2.正则表达式验证控制文本框的输入字符类型
1.只能输入数字和英文的:
input onkeyup= value=value . replace(/[ W]/g, ) onbeforepaste= clipboard data . setdata( text ,clipboardData.getData(text )。replace(/[^d]/g,)) ID=文本1 NAME=文本1
2.只能输入数字的:
输入onkeyup=value=value.replace(/[^d]/g,) onbeforepaste= clipboard data . setdata( text ,clipboardData.getData(text )。replace(/[^d]/g,)) ID=文本2 NAME=文本2
3.只能输入全角的:
输入onkeyup=value=value.replace(/[^uff00-uffff]/g,) onbeforepaste= clipboard data . setdata( text ,clipboardData.getData(text )。replace(/[^uff00-uffff]/g,)) id= text 3 name= text 3
4.只能输入汉字的:
输入onkeyup=value=value.replace(/[^u4e00-u9fa5]/g,) onbeforepaste= clipboard data . setdata( text ,clipboardData.getData(text )。replace(/[^u4e00-u9fa5]/g,)) id= text 4 name= text 4
3.正则表达式的应用实例通俗说明
*******************************************************************************
//检查是否都是数字。
/^[0-9]{1,20}$/
指示前导字符应匹配紧随其后的规则。
$表示前导字符应该匹配紧接在$之前的规则
[]中的内容是可选字符集。
[0-9]表示所需的字符范围在0到9之间。
{1,20}表示数字串的长度在法律上是1到20,即[0-9]中的字符出现的次数范围是1到20次。
成对使用/和$/应该意味着整个字符串应该与定义的规则完全匹配,而不是只匹配字符串中的一个子字符串。
*******************************************************************************
//检查登录名:只能输入5-20个以字母开头的字符串,可以包含数字“_”和“.”
/^[a-zA-Z]{1}([a-zA-Z0-9]|[._]){4,19}$/
[a-za-z] {1}表示第一个字符必须是字母。
([a-zA-Z0-9]|[。_]){4,19}是指从第二位开始的长度为4到9位的字符串(因为它紧跟在最后一个表达式之后),要求由大小写字母、数字或特殊字符集[组成。_].
*******************************************************************************
//验证用户名:只能输入1-30个以字母开头的字符串。
/^[a-zA-Z]{1,30}$/
*******************************************************************************
//验证密码:只能输入6-20个字母、数字和下划线。
/^(w){6,20}$/
w:用于匹配字母、数字或下划线字符。
*******************************************************************************
//检查普通电话和传真的号码:可以以“”或数字开头,可以包含“-”和“”
/^[ ]{0,1}(d){1,3}[ ]?([-]?(((d)|[ ]){1,12}) $/
d:用于匹配从0到9的数字;
"?"元字符规定它的前导对象必须在目标对象的一行中出现零次或一次。
可匹配的字符串如:123-999 999;123-999 999 ;123 999 999 ;13 999999等
*******************************************************************************
//检查URL
/http [s] {0,1}: //。$/或/http [s] {0,1}: //。{1,n} $/(表示url字符串的长度为length ("3359") n)
/:表示字符“/”。表示所有字符的集合。
它等于{1,},即1的正无穷次方。
*******************************************************************************
//检查纯汉字
/
^[u4E00-u9FA5] $/
[u4E00-u9FA5]:大概是中文字符集的范围。
以上表达式都在下面的javascript中进行了测试。
超文本标记语言
脚本语言=JavaScript
!-
函数regx(r,s)
{
if (r==null || r==){
返回false
}
var patrn=new RegExp(r);
if (patrn.exec)
返回true
返回false
}
-
/脚本
身体
形式
规则表达式 :
input= input name= regxstr value= (填入//之间的表达式)
英国铁路公司
校验字符串 :
输入类型=输入名称=字符串值=
type= button name= match value= match onclick= alert(regx(regxstr . value,str . value));
/表单
/body
/html
4.正則表達式應用
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]
^((-d (。d)?)|(0 (.0 )?))$ //非正浮点数(负浮点数0)
(-([0-9] .[0-9] * [1-9] [0-9] *) | ([0-9] * [1-9] [0-9] * .[0-9]) | ([0]
^(-?d )(。d)?$ //浮点数
[A-ZA-Z]$ //由26个英文字母组成的字符串
[A-Z]$ //由26个大写英文字母组成的字符串
[A-Z]$ //由26个小写英文字母组成的字符串
[A-ZA-Z0-9]$ //由数字和26个英文字母组成的字符串
w $ //由数字、26个英文字母或下划线组成的字符串。
[ w-] (。[ w-]) * @ [ w-] (。[ w-])$ /电子邮件地址
^[a-zA-z] ://(w (-w )*)(。( w(- w)*)*(?S*)?$//url
/(d { 2 } | d { 4 })-((0([1-9]{ 1 })|(1[1 | 2])-([0-2]([1-9]{ 1 })|(3[0 |
/^((0([1-9]{1}))|(1[1|2]))/(([0-2]([1-9]{1}))|(3[0|1]))/(d{2}|d{4})$///月/日/年
^([w-.] )@(([[0-9]{1,3}.[0-9]{1,3}.[0-9]{1,3}.)|((w-).)))([a-zA-Z]{2,4}|[0-9]{1,3})(]?)$ //埃米尔
(d -)?(d{4}-?d{7}|d{3}-?d{8}|^d{7,8})(-d)?"//电话号码
^(d{1,2}|1dd|2[0-4]d|25[0-5]).(d{1,2}|1dd|2[0-4]d|25[0-5]).(d{1,2}|1dd|2[0-4]d|25[0-5]).(d{1,2}|1dd|2[0-4]d|25[0-5])$ //IP地址
^([0-9a-f]{2})(-[0-9a-f]{2}){5}$//苹果地址的正则表达式
^[- ]? d( d .d)?$ //值类型正则表达式
5.javascript正则表达式检验
//校验是否全由数字组成
函数是数字
{
var patrn=/^[0-9]{1,20}$/;
如果(!patrn.exec)返回错误的
返回真实的
}
//校验登录名:只能输入5-20个以字母开头、可带数字、"_"、"."的字串
函数是注册用户名
{
瓦尔patrn=/^[a-za-z]{1}([a-za-z0-9]|[._]){4,19}$/;
如果(!patrn.exec)返回错误的
返回真实的
}
//校验用户姓名:只能输入1-30个以字母开头的字串
函数名称
{
var patrn=/^[a-za-z]{1,30}$/;
如果(!patrn.exec)返回错误的
返回真实的
}
//校验密码:只能输入6-20个字母、数字、下划线
函数是密码
{
var patrn=/^(w){6,20}$/;
如果(!patrn.exec)返回错误的
返回真实的
}
//校验普通电话、传真号码:可以" "开头,除数字外,可含有"-"
函数伊斯特尔
{
//var patrn=/^[ ]{0,1}(d){1,3}[ ]?([-]?(d){1,12 })$/;
var patrn=/^[ ]{0,1}(d){1,3}[ ]?([-]?((((d)|[ ]){1,12 })$/;
如果(!patrn.exec)返回错误的
返回真实的
}
//校验手机号码:必须以数字开头,除数字外,可含有"-"
功能是移动的
{
var patrn=/^[ ]{0,1}(d){1,3}[ ]?([-]?((((d)|[ ]){1,12 })$/;
如果(!patrn.exec)返回错误的
返回真实的
}
//校验邮政编码
函数是邮政编码
{
//var patrn=/^[a-za-z0-9]{3,12}$/;
var patrn=/^[a-zA-Z0-9 ]{3,12 } $/;
如果(!patrn.exec)返回错误的
返回真实的
}
//校验搜索关键字
函数是搜索
{
var patrn=/^[^`~!@#$%^*()=|][]{}:,/?]{1}[^`~!@$%^()=|][]{}:,]{0,19}$/;
如果(!patrn.exec)返回错误的
返回真实的
}
函数isIP//通过小狗
{
瓦尔patrn=/^[0-9.]{1,20}$/;
如果(!patrn.exec)返回错误的
返回真实的
}
/*********************************************************************************
*功能:介于之间
*参数:val为任意值
* lo作为检查的下限
*嗨为检查上限
*通话:无
*返回:如果英国压力单位介于瞧和你好之间,则为没错,否则为错误.
**********************************************************************************/
函数介于(val,lo,hi) {
if((val lo)| |(val hi)){ return(false);}
else { return(true);}
}
/*********************************************************************************
*函数:isDate检查有效日期
*参数:字符串形式的字符串
*通话:isBetween,isInt
*返回:如果字符串是有效日期,则为真实的否则为错误.
**********************************************************************************/
函数isDate (theStr) {
var 1st=str。(“-”)的索引;
var 2nd=str。lastindexof(-);
if(1st==2nd){ return(false);}
否则{
var y=theStr.substring(0,1日);
var m=theStr.substring(第一个1,第二个);
var d=theStr.substring(第二个1、str。长度);
var maxDays=31
if(isInt(m)==false | | isInt(d)==false | | isInt(y)==false){
返回(假);}
else if(y . length 4){ return(false);}
else if(!isBetween (m,1,12)){ return(false);}
else if(m==4 | | m==6 | | m==9 | | m==11)maxDays=30;
else if (m==2) {
if(y % 4 0)maxDays=28;
else if(y % 100==0y % 400 0)maxDays=28;
else maxDays=29
}
if (isBetween(d,1,maxDays)==false){ return(false);}
else { return(true);}
}
}
/*********************************************************************************
*函数:isEuDate检查英国格式的有效日期
*参数:字符串形式的字符串
*通话:isBetween,isInt
*返回:如果字符串是有效日期,则为真实的否则为错误.
**********************************************************************************/
函数isEuDate (theStr) {
if (isBetween(theStr.length,8,10)==false){ return(false);}
否则{
var 1st=str。(“/”)的索引;
var 2nd=str。lastindexof(/);
if(1st==2nd){ return(false);}
否则{
var m=theStr.substring(第一个1,第二个);
var d=theStr.substring(0,1日);
var y=theStr.substring(第二个1、str。长度);
var maxDays=31
if(isInt(m)==false | | isInt(d)==false | | isInt(y)==false){
返回(假);}
else if(y . length 4){ return(false);}
else if (isBetween (m,1,12)==false){ return(false);}
else if(m==4 | | m==6 | | m==9 | | m==11)maxDays=30;
else if (m==2) {
if(y % 4 0)maxDays=28;
else if(y % 100==0y % 400 0)maxDays=28;
else maxDays=29
}
if (isBetween(d,1,maxDays)==false){ return(false);}
else { return(true);}
}
}
}
/********************************************************************************
*功能:比较日期!哪个是最新的!
*参数:lessDate,moreDate为字符串
*通话:isDate,isBetween
*如果lessDatemoreDate,则返回:正确
*********************************************************************************/
函数是compdate(lessDate,moreDate)
{
如果(!isDate(lessDate)){ return(false);}
如果(!isDate(moreDate)){ return(false);}
var less 1st=lessdate。(“-”)的索引;
var减去2nd=lessdate。lastindexof(-);
var more 1st=moredate。(“-”)的索引;
var more 2nd=moredate。lastindexof(-);
var lessy=lessDate.substring(0,减去1st);
var lessm=lessdate。子串(少第1个1,少第2个);
var lessd=lessdate。substring(减去2nd 1,lessdate。长度);
var morey=moreDate.substring(0,more 1st);
var morem=moredate。子串(多1st 1,多2nd);
var mored=moredate。子串(更2nd 1,更date。长度);
var日期1=新日期(lessy,lessm,lessd);
var日期2=新日期(莫雷,莫雷姆,莫雷德);
if(date 1 date 2){ return(false);}
返回(真);
}
/*********************************************************************************
*函数isEmpty检查参数是否为空
*参数字符串为字符串
**********************************************************************************/
函数isEmpty (str) {
if ((str==null)||(str.length==0))返回真实的
其他返回(假的);
}
/*********************************************************************************
*功能:isInt
*参数:字符串形式的字符串
*如果传递的参数是整数,则返回:真的,否则返回错误的
*通话:isDigit
**********************************************************************************/
函数isInt (theStr) {
var flag=true
if(为空(字符串)){ flag=false}
其他
{ for(var I=0;itheStr.lengthi ) {
if (isDigit(theStr.substring(i,i 1))==false) {
标志=假打破;
}
}
}
返回(标志);
}
/*********************************************************************************
*功能:以色列
*参数:heStr作为字符串
德克伦为整数(句点后有多少位数)
*返回:如果字符串是浮点数,则为没错,否则为错误的
*通话:isInt
**********************************************************************************/
函数isReal (theStr,decLen) {
var dot1st=theStr.indexOf( . );
var dot2nd=theStr.lastIndexOf( . );
var OK=true
if (isEmpty(theStr))返回错误的
if (dot1st==-1) {
如果(!isInt(str))返回(false);
其他返回(真);
}
else if (dot1st!=点2nd)return(false);
else if (dot1st==0)返回(假的);
否则{
var intPart=theStr.substring(0,dot 1st);
var dec部分str。子串(点2nd 1);
if(长度偏差)返回(假的);
else if(!isInt(intPart) ||!isInt(dec部分))return(false);
else if (isEmpty(decPart))返回(假的);
其他返回(真);
}
}
/*********************************************************************************
*功能:isEmail
*参数:字符串(电子邮件地址)
*如果字符串是有效的电子邮件地址,则返回:正确
*如果传递的字符串不是有效的电子邮件地址,则为错误的
*电子邮件格式:AnyName@EmailServer例如:webmaster@hotmail.com
* @符号只能在电子邮件地址中出现一次。
*********************************************************************************/
函数isEmail (theStr) {
索引处的var=str。(“@”)的索引;
var dotIndex=theStr.indexOf( . 在索引处);
var flag=true
theSub=theStr.substring(0,dotIndex 1)
if ((atIndex 1)||(atIndex!=字符串。lastindexof( @ )| |(索引2处的点索引)| |(字符串。长度=接头。长度))
{ return(false);}
else { return(true);}
}
/*********************************************************************************
*函数:新窗口
*参数:文档-在新窗口中打开的文档
新窗口的高度
新窗口的宽度
条-1-滚动条=是0-滚动条=否
调整大小-1-可调整大小=是0-可调整大小=否
*通话:无
*返回:新窗口实例
**********************************************************************************/
函数新窗口(文档、白色、宽、条形、调整大小){
var winNew= _ blank
var opt=toolbar=0,location=0,directories=0,status=0,menubar=0,;
opt=(scrollbars= bars ,);
opt=(resizable= resize ,);
opt=(width= wide ,);
opt=( height= hite);
winHandle=window.open(doc,winNew,opt);
返回;
}
/*********************************************************************************
*函数:十进制格式
*参数:参数值-字段值
*通话:无
*返回:格式化字符串
**********************************************************************************/
函数DecimalFormat(参数值){
var int part=parse int(参数值);
var dec part=parse float(param value)-int部分;
str=
if((dec part==0)| |(dec part==null))str=(int part 。00 );
else str=(int part dec part);
返回(str);
}
^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).d)?$//浮点数
^[A-Za-z] $//由26个英文字母组成的字符串
^[A-Z] $//由26个英文字母的大写组成的字符串
^[a-z] $//由26个英文字母的小写组成的字符串
^[A-Za-z0-9] $//由数字和26个英文字母组成的字符串
^w $//由数字、26个英文字母或者下划线组成的字符串
^[w-] ( .[w-] )*@[w-] ( .[ w-])$ //电子邮件地址
^[a-za-z]://( w(- w)*)( w).( w(- w)*)*( ?S*)?$//url
以上就是给大家分享的正则表达式基本语法,希望对大家学习有所帮助。