请问大家如何区分分隔符和正则表达式的开始符?
举例来说,if(1)/1/ 和a=(1)/1;

解决方案 »

  1.   

    我做了一个js解析程序,但是在解析正则表达式时出现了错误。
    1、比如象if(1)/1/ 的正则表达式,我不能判断'1'前面的'/'是不是正则表达式的开始符号。
    因为也存在a=(1)/1的情况,这里的'/'仅仅是一个分隔符。
    在正常的情况下/a/,这样的正则表达式的解析都是正确的。
      

  2.   

    <script>
    //是正则表达式返回true,否则返回false
    function isRe(str)
    {
    var start = str.indexOf("/");
    if(start<0) return false;
    var end = str.lastIndexOf("/");
    if(end==start) return false;
    str = str.substring(start,end+1);
    try{
    var re = eval(str);
    if(re.test){
    return true;
    }else{
    return false;
    }
    }catch(e){
    return false;
    }
    }alert(isRe("if(1)/1/"));//true
    alert(isRe("a=(1)/1;"));//false
    </script>
      

  3.   

    谢谢楼上各位,其实这个问题我没有描述清楚。
    实际上我是做的一个JS解释器,我解析javascript code one by one,
    当我碰到"/", 排除了是comment之外,我无法判断他是division  还是regular expression的开始符号。
      

  4.   

    谢谢楼上各位,其实这个问题我没有描述清楚。
    实际上我是做的一个JS解释器,我解析javascript code one by one,
    当我碰到"/", 排除了是comment之外,我无法判断他是division  还是regular expression的开始符号。