//以下这个缺点是斜线之间不能有空格,如果存在空格就不能匹配,唉,不能帮楼主完全解决,等待高手的代码<script>
function check()
{
var x=document.form1.x.value;
var pattern=/^ABC\/[^ ]*\/[^ ]*\/$/;
if(!pattern.test(x))
{
alert("不匹配");return false;
}
else
{
alert("ok");
return true;
}
}
</script>
<form name="form1" method="post" action="">
<input name="x" type="text" id="x">
<input type="button" name="Submit" value="按钮" onClick="return check()">
</form>
function check()
{
var x=document.form1.x.value;
var pattern=/^ABC\/[^ ]*\/[^ ]*\/$/;
if(!pattern.test(x))
{
alert("不匹配");return false;
}
else
{
alert("ok");
return true;
}
}
</script>
<form name="form1" method="post" action="">
<input name="x" type="text" id="x">
<input type="button" name="Submit" value="按钮" onClick="return check()">
</form>
[A-Z] 匹配从A-Z的字母,即匹配所有的大写字母
[a-zA-Z] 就是匹配所有的字母
[0-9] 的意思是匹配所有的数字
[ntrf] 匹配所有的空字符,包括换行符,tab,回车符(不含空格)
"^"开头表示取非,即若含有其后的字符,则是不匹配的,否则是匹配的.
[^a-z] 匹配所有非小写字母
[^A-Z],[^0-9] 意思是一样的,匹配所有非大写字母,匹配所有非数字字符.
^[a-f]是指以a-f等六个字母中的一个开头的字符串匹配模式,
[^a-f]则是匹配字符串中不是a-f等六个字母中的字符
^[^a-f] ,如果一个字符串不是以a-f开头的字符串,那么将是匹配的.除了上述的字符簇外,PHP还提供了一些内置的通用字符簇:
[[:alpha:]] 任何字母
[[:digit:]] 任何数字
[[:alnum:]] 任何数字和字母
[[:space:] 任何空白字符
[[:upper:]] 任何大字字母
[[:lower:]] 任何小写字母
[[:punct:]] 任何标点符号
[[:xdigit:]] 任何十六进制的数字
[[:cntrl:]] 任何ASCII值小于32的字符
[".chr(0xa1)."-".chr(0xff)."]匹配所有的汉字加号:"+"字符用来匹配元字符前的字符出现一次或者多次。例如“/ac+/”表示被匹配的对象可以是"act"、"account"、"acccc"等在"a"后面出现一个或者多个"c"的字符串。“+”相当于“”。 星号:"*"字符用来匹配元字符前的字符出现零次或者多次。例如“/ac*/”表示被匹配的对象可以是"app"、"acp"、"accp"等在"a"后面出现零个或者多个"c"的字符串。“*”相当于“”。 问号:"?"字符用来匹配元字符前的字符出现零次或者1次。例如“/ac?/”表示匹配的对象可以是"a"、"acp"、"acwp"这样在"a"后面出现零个或者1个"c"的字符串。"?"在正则表达式中还有一个非常重要的作用,即"贪婪模式"。 贪婪模式:
前面在元字符中提到过"?"还有一个重要的作用,即"贪婪模式",什么是"贪婪模式"呢?
比如我们要匹配以字母“a”开头字母“b”结尾的字符串,但是需要匹配的字符串在“a”后面含有很多个“b”,比如“a bbbbbbbbbbbbbbbbb”,那正则表达式是会匹配第一个“b”还是最后一个“b”呢?如果你使用了贪婪模式,那么会匹配到最后一个"b",反之只是匹配到第一个“b”。
使用贪婪模式的表达式如下:
/a.+?b/
/a.+b/U
不使用贪婪模式的如下:
/a.+b/
上面使用了一个修饰符U修饰符:
在正则表达式里面的修饰符可以改变正则的很多特性,使得正则表达式更加适合你的需要(注意:修饰符对于大小写是敏感的,这意味着"e"并不等于"E")。正则表达式里面的修饰符如下:
i :如果在修饰符中加上"i",则正则将会取消大小写敏感性,即"a"和"A" 是一样的。
m:默认的正则开始"^"和结束"$"只是对于正则字符串如果在修饰符中加上"m",那么开始和结束将会指字符串的每一行:每一行的开头就是"^",结尾就是"$"。
s:如果在修饰符中加入"s",那么默认的"."代表除了换行符以外的任何字符将会变成任意字符,也就是包括换行符!
x:如果加上该修饰符,表达式中的空白字符将会被忽略,除非它已经被转义。
e:本修饰符仅仅对于replacement有用,代表在replacement中作为PHP代码。
A:如果使用这个修饰符,那么表达式必须是匹配的字符串中的开头部分。比如说“/a/A”匹配“abcd”。
E:与"m"相反,如果使用这个修饰符,那么"$"将匹配绝对字符串的结尾,而不是换行符前面,默认就打开了这个模式。
U:和问号的作用差不多,用于设置"贪婪模式"。