//以下这个缺点是斜线之间不能有空格,如果存在空格就不能匹配,唉,不能帮楼主完全解决,等待高手的代码<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>

解决方案 »

  1.   

    preg_match( "/\/ABC\/(.*)\/(.*)\//", $str )
      

  2.   

    [a-z]      匹配从a-z的字母,即匹配所有的小写字母
    [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:和问号的作用差不多,用于设置"贪婪模式"。