测试字符串是否以.html |结尾.html |以.json

时间:2014-09-02 12:29:14

标签: javascript regex

我想创建一个javascript正则表达式来测试字符串是否是指向.html.htm.json资源的有效网址。

我试过

validUrl = new RegExp('(\.html)|(\.htm)$','g');

并且像这样,但没有成功:(然后我试过

validUrl = new RegExp('(.*\.html|.*\.htm|.*\.json)$','i');

这个似乎有效,但我不相信这是正确的。有人能保证我吗? :)

由于

1 个答案:

答案 0 :(得分:4)

不要使用RegExp构造函数创建常量正则表达式,因为这需要双重转义字符串文字中的反斜杠。相反,使用正则表达式文字:

validUrl = /(.*\.html|.*\.htm|.*\.json)$/i;

现在\.确实与点匹配。

您可以进一步将此缩短为.*\.(html?|json)$,实际上您无需匹配.*来测试后缀,因此您只需使用

validUrl = /\.(html?|json)$/i;