正则表达式基本语法 正则表达式基本语法(转)

这是原本连接:

正则表达式基本语法

1.正则表达式基本语法

两个特殊的符号'^'和'$'。他们的作用是分别指出一个字符串的开始和结束。例子如下:

"^The":表示所有以"The"开始的字符串("There","The cat"等);"of despair$":表示所以以"of despair"结尾的字符串;"^abc$":表示开始和结尾都是"abc"的字符串――呵呵,只有"abc"自己了;"notice":表示任何包含"notice"的字符串。

象最后那个例子,如果你不使用两个特殊字符,你就在表示要查找的串在被查找串的任意部分――你并不把它定位在某一个顶端。

其它还有'*','+'和'?'这三个符号,表示一个或一序列字符重复出现的次数。它们分别表示“没有或更多”,“一次或更多”还有“没有或一次”。下面是几个例子:

"ab*":表示一个字符串有一个a后面跟着零个或若干个b。("a", "ab", "abbb",……);"ab+":表示一个字符串有一个a后面跟着至少一个b或者更多;"ab?":表示一个字符串有一个a后面跟着零个或者一个b;"a?b+$":表示在字符串的末尾有零个或一个a跟着一个或几个b。

你也可以使用范围,用大括号括起,用以表示重复次数的范围。

"ab{2}":表示一个字符串有一个a跟着2个b("abb");"ab{2,}":表示一个字符串有一个a跟着至少2个b;"ab{3,5}":表示一个字符串有一个a跟着3到5个b。

请注意,你必须指定范围的下限(如:"{0,2}"而不是"{,2}")。还有,你可能注意到了,'*','+'和'?'相当于"{0,}","{1,}"和"{0,1}"。还有一个'|',表示“或”操作:

正则表达式基本语法 正则表达式基本语法(转)

"hi|hello":表示一个字符串里有"hi"或者"hello";"(b|cd)ef":表示"bef"或"cdef";"(a|b)*c":表示一串"a""b"混合的字符串后面跟一个"c";

'.'可以替代任何字符:

"a.[0-9]":表示一个字符串有一个"a"后面跟着一个任意字符和一个数字;"^.{3}$":表示有任意三个字符的字符串(长度为3个字符);

方括号表示某些字符允许在一个字符串中的某一特定位置出现:

"[ab]":表示一个字符串有一个"a"或"b"(相当于"a|b");"[a-d]":表示一个字符串包含小写的'a'到'd'中的一个(相当于"a|b|c|d"或者"[abcd]");"^[a-zA-Z]":表示一个以字母开头的字符串;"[0-9]%":表示一个百分号前有一位的数字;",[a-zA-Z0-9]$":表示一个字符串以一个逗号后面跟着一个字母或数字结束。

正则表达式基本语法(转)_正则表达式语法

你也可以在方括号里用'^'表示不希望出现的字符,'^'应在方括号里的第一位。(如:"%[^a-zA-Z]%"表示两个百分号中不应该出现字母)。

为了逐字表达,你必须在"^.$()|*+?{"这些字符前加上转移字符''。

请注意在方括号中,不需要转义字符。2.正则表达式验证控制文本框的输入字符类型1.只能输入数字和英文的:<input onkeyup="value=value.replace(/[W]/g,'') " onbeforepaste="clipboardData.setData('text',clipboardData.getData('text').replace(/[^d]/g,''))" ID="Text1" NAME="Text1">2.只能输入数字的:<input onkeyup="value=value.replace(/[^d]/g,'') " onbeforepaste="clipboardData.setData('text',clipboardData.getData('text').replace(/[^d]/g,''))" ID="Text2" NAME="Text2">3.只能输入全角的:<input onkeyup="value=value.replace(/[^uFF00-uFFFF]/g,'')" onbeforepaste="clipboardData.setData('text',clipboardData.getData('text').replace(/[^uFF00-uFFFF]/g,''))" ID="Text3" NAME="Text3">4.只能输入汉字的:<input onkeyup="value=value.replace(/[^u4E00-u9FA5]/g,'')" onbeforepaste="clipboardData.setData('text',clipboardData.getData('text').replace(/[^u4E00-u9FA5]/g,''))" ID="Text4" NAME="Text4">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?;+123 999999等

*******************************************************************************

//校验URL

/^http[s]{0,1}://.+$/?或?/^http[s]{0,1}://.{1,n}$/ (表示url串的长度为length(“https://”) + n )

/?:表示字符“/”。

.?表示所有字符的集

+?等同于{1,},就是1到正无穷吧。

*******************************************************************************

//校验纯中文字符

/^[u4E00-u9FA5]+$/

[u4E00-u9FA5]?:估计是中文字符集的范围吧

以上表达式均在下面的javascript中测试通过

<html>

<script language="JavaScript">

<!--

function regx(r,s)

{

???????if (r == null || r == ""){

??????????????return false;

???????}

???????var patrn= new RegExp(r);

???????if (patrn.exec(s))

??????????????return true

???????return false

}

-->

</script>

<body>

<form>

???????规则表达式?:?<input type="input" name="regxStr" value="" > (填写/ /之间的表达式)

<br>

???????校验字符串?:?<input type="input" name="str" value="" >

???????<input type="button" name="match" value="匹配" onClick="alert(regx(regxStr.value,str.value));">

</form>

</body>

</html>4.正

  

爱华网本文地址 » http://www.413yy.cn/a/8105010103/313412.html

更多阅读

存储过程基本语法及实例 存储过程语法

存储过程如同一门程序设计语言,同样包含了数据类型、流程控制、输入和输出和它自己的函数库。--------------------基本语法--------------------一.创建存储过程create procedure sp_name()begin.........end二.调用存储过程1.基

正则表达式语法适合初级,很全很强大 正则表达式基础语法

Java 正则表达式表达式意义:1.字符x 字符 x。例如a表示字符a 反斜线字符。在书写时要写为\。(注意:因为java在第一次解析时,把\解析成正则表达式,在第二次解析时再解析为,所以凡是不是1.1列举到的转义字符,包括1.1的,而又带有的都要

小学英语基本语法集合版 英语基本语法知识

第一讲名词和名词的数名词是:人名、地名、事物名、抽象概念的名称的词。名词分为:专有名词和普通名词。(一)专有名词有:人名、   地名、 国家名、   某国人、 语言名、(Liming) (Beijing) (China、Japan) (Chinese、Japanese) (Chinese、)星期、

教案的基本格式 幼儿园教案表格式范例

教案编制的格式要求教案是指教师针对不同层次、不同专业学生,为每一个知识点(群)编制的教学方案,它应该吸纳学生的意见和建议,以期更适合不同层次和专业学生的要求。教案是授课教师教学思想、教学方法的重要体现,它反映了教师的自身素

声明:《正则表达式基本语法 正则表达式基本语法(转)》为网友奢糜柔情分享!如侵犯到您的合法权益请联系我们删除