使用.match()中的一个点

时间:2011-03-22 10:58:05

标签: javascript jquery regex match

我有一点问题,但很奇怪。

所以基本上我分析了一个由字符串表示的URL。我唯一想检查的是这个网址是否包含'.pdf'

但问题是,如果URL内容只是'pdf',它也会在IF条件下输入。所以我真的不明白,是'。'一个特殊的特征?

if (URL.match(".pdf")) 

3 个答案:

答案 0 :(得分:7)

是的,是的。

你需要用反斜杠来逃避它。

if (URL.match(/\.pdf$/i)) 

$表示网址必须以该模式结尾


更新

我不知道您在哪个上下文中运行该代码,但是使用jQuery还可以创建一个选择器,它符合以下要求:

var $pdf_only = $('a[href$=\\.pdf]');

这将查询所有锚点,其中 href .pdf

结尾

答案 1 :(得分:5)

是。 match()采用正则表达式作为参数。您应该在此使用正则表达式文字并转义.

if (URL.match(/\.pdf/)) 

或者你使用字符串,你需要双重转义它,因为反斜杠是字符串中的特殊字符:

if (URL.match("\\.pdf")) 

正则表达式中未转义的.表示“任何字符”。

答案 2 :(得分:2)

使用regexp文字并转义点。

if ( url.match( /\.pdf$/ ) {
    // shazam
}

或作为字符串

if ( url.match( "\\.pdf$" ) {
    // shazam
}