首页 文章

'RegExp'和正则表达式之间的区别?

提问于
浏览
-1

我刚刚使用Javascript进入正则表达式...而且我似乎已经把自己弄糊涂了......

有些谷歌搜索在那里也没有任何好处...

我知道Javascript语法:

var str = "Hello!";
var x = new RegExp(...);
document.write = x.eval(str);

我在这里错过了什么吗?

编辑:显然我不清楚...我是Javascript正则表达式的新手 . 根据我的理解,正则表达式和正则表达式是不同的 . 如果是这样,有什么区别?

2 回答

  • 4

    有“RegExp类”语法:

    var pattern = new RegExp("/[a-z]+/","i");
    

    和“RegExp literal”语法:

    var pattern = /[a-z]+/i;
    

    每个都有自己的优点 . 类语法可以处理变量,这样你可以创建动态正则表达式,另一方面文字systax更短,你不必逃避这么多 .

    拥有模式后,可以使用一些正则表达式方法,例如:

    text.match(pattern);
    text.replace(pattern,replacement);
    
    pattern.exec(text);
    pattern.test(text);
    
  • 3

    JavaScript的 RegExp 实例没有 eval 函数,您可能会想到exectest .

    例:

    var rex = /^\d+$/;
    //Or  var rex = new RegExp("^\\d+$");
    //Note how within quotes you have to escape backslashes
    
    if (rex.test(someValue)) {
      display("Yup, it's all digits");
    }
    else {
      display("Nope, there are non-digits there or it's blank.");
    }
    

    Live copy

相关问题