/(%\w{2})+/
例如:
<script language="javascript">
var str = "%E7%AF%AE%E7%90%83";
if(str.match(/(%\w{2})+/))
{
alert("match");
}
else
{
alert("not match");
}
</script>

解决方案 »

  1.   

    可能我没说清楚。字符串的长度和排列顺序都是不定的,像这个:9jb%2Fh98hogMYTGYibWSqwA%3D%3D
      

  2.   

    反义:[^%a-z0-9A-Z]
    如果这个返回的是不为空则说明不匹配
      

  3.   

    [^%a-z0-9A-Z] 
    例如: 
    <script language="javascript"> 
    var str = "%E7%AF%AE%E7%90%83"; 
    if(str.match(/[^%a-z0-9A-Z]/) 

    alert("not match"); 

    else 

    alert(" match"); 

    </script>
      

  4.   

    反义写错了这样:
    [^(%a-z0-9A-Z)]
      

  5.   

    还是不太行。我想匹配这样的路径/Bja7orTrlHq1hr%2FOUTO7XQ%3D%3D.htm 在urlrewrite.xml里面这样写 
    <rule> 
    <from>/(.+).htm </from> 
    <to>/detail.jsp?q=$1 </to> 
    </rule> 为什么总是不行呢?请高手指教。
      

  6.   

    ^[a-z0-9A-Z\%]*$ 纠正一下,嘿嘿,哈哈!~
      

  7.   

    ^[a-z\dA-Z\%]+$ 
    不允许为空的话,用这个
      

  8.   

    真不知道是什么问题了,以上各位的试过都没用。现在发现如果用(.+) ,只要字符串里面没有%2F就可以。这个%2F是不是空格的意思?怎么匹配它呢?我这样写((.|(%2F))+)也不行。
      

  9.   

    <script language="javascript">
    function show()
    {  var s=/^[a-zA-Z0-9%]+$/;
     var value=document.getElementById("txt").value;//获取文本的值
     if(s.test(value)==false)
     {
     alert("NO");
     }else
     {
      alert("OK");
     }}</script>
      

  10.   

    肯定是你传递过来的值已经编译
    才导致这样的比如%20就是URL编码的空格
      

  11.   

    那怎么解决呢?如果我直接用/detail.jsp?q=Bja7orTrlHq1hr%2FOUTO7XQ%3D%3D 是可以访问的,但换成/Bja7orTrlHq1hr%2FOUTO7XQ%3D%3D.htm 就不行了。
      

  12.   

    从字面看,要匹配的就只有Bja7orTrlHq1hr%2FOUTO7XQ%3D%3D,没有其他字符啊?如果是传递过来的值已经编译,那么%3D这些肯定也会有影响的,但现在包含%3D、%2B这些都可以,唯独是%2F不行。为什么会这样呢?
      

  13.   

    我感觉是你的理解错误,导致你说出来的东西舞蹈别人了
    Bja7orTrlHq1hr%2FOUTO7XQ%3D%3D你这个反编译过来是:
    Bja7orTrlHq1hr/OUTO7XQ==
    /detail.jsp?q=Bja7orTrlHq1hr%2FOUTO7XQ%3D%3D 你这个是在地址栏上显示的但是在你接受q的值的时候,他实际是Bja7orTrlHq1hr/OUTO7XQ==而不是Bja7orTrlHq1hr%2FOUTO7XQ%3D%3D
      

  14.   

    可能我也是没说清楚。接受q值的时候,得到的确实是Bja7orTrlHq1hr/OUTO7XQ== ,这个没错的。但现在问题是,用正则表达式转向的时候,不能把/Bja7orTrlHq1hr%2FOUTO7XQ%3D%3D.htm 转为/detail.jsp?q=Bja7orTrlHq1hr%2FOUTO7XQ%3D%3D  ,总是找不到页面。按我的理解,正则表达式匹配的时候,应该不会把它编译成Bja7orTrlHq1hr/OUTO7XQ== 吧。这个编译应该只在后面的java程序取q值的时候发生。不知道这样理解对不对。
      

  15.   

    呵呵,我的意思是,现在要匹配的字符串是Bja7orTrlHq1hr%2FOUTO7XQ%3D%3D,它本身不含/的。正则表达式应该也不会自动把他转换成Bja7orTrlHq1hr/OUTO7XQ== ,所以不应该有影响啊。
      

  16.   

    就像这个Bja7orTrlHq1hr%2FOUTO7XQ%3D%3D ,大小写字母、数字和百分号