我是这么写的:
var reg1 = /^\(/,reg2=/\)$/;
if(reg1.test(rp)&&reg2.test(rp))
有没有一个正则就写好的方式, 而且高效.其实用indexOf(0)和indexOf(str.length-1)也很直接, 那种效率更高?

解决方案 »

  1.   

    如果是在字符串很长很长的情况下js的正则是只能从左向右但是有的js函数却可以直接搞最后面的字符肯定字符串快以前看过js的tirm的n中实现   跟你时候的首位括号是一个意思  
    取后边的是用的字符串的方法 快
      

  2.   

    找到了一个tirm实现的 n中方法
    http://www.cnblogs.com/rubylouvre/archive/2009/09/18/1568794.html
      

  3.   

    我在浏览器测试了一下, 正则确实非常的耗资源, 在一大段中文字符的情况下, 循环0x100000次, Chrome浏览器.一次正则, 耗时近1秒, 900上下.
    2次正则, 再&&, 200毫秒上下.
    使用charAt(0)&&charAt(str.length-1) 100多毫秒, 这是末尾是中文的情况, 
    如果是英文符号, 这个值是10毫秒级. 很奇怪的现象.所有测试必须保证开头是"(", 否则可能会优化掉第二个测试.综合来看, 还是传统方法最快. 但是为什么中文会慢呢? 而且与网页编码无关, 按说, JavaScript内部都是unicode字串, 应该是一样的.
      

  4.   

    JavaScript比较英文字符比比较中文字符快10倍以上, 这真是个奇怪的特性, 比较字符无非是比较2个字节的一个WORD值, 在汇编层面它不比比较一个字节更慢.