我刚刚使用Javascript进入正则表达式...而且我似乎已经让自己感到困惑......
一些谷歌搜索在这里和那里对我没有任何好处......
我知道Javascript语法:
var str = "Hello!";
var x = new RegExp(...);
document.write = x.eval(str);
我在这里错过了什么吗?
编辑:显然我不清楚......我是Javascript Regular Expressions的新手。根据我的理解,正则表达式和正则表达式是不同的。如果是这样,有什么区别?
答案 0 :(得分:4)
JavaScript的RegExp
个实例没有eval
个功能,您可能会考虑exec
或test
。
示例:
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.");
}
答案 1 :(得分:3)
有“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);