嗯,我有一个小问题,但真的很奇怪。在.match()使用一个点
所以基本上我分析了一个字符串表示的URL。我唯一想检查的是这个URL是否包含'.pdf'
但问题是,如果URL内容只是'pdf',它也会进入IF条件。所以我不太明白,是'。'一个特殊的caracter?
if (URL.match(".pdf"))
嗯,我有一个小问题,但真的很奇怪。在.match()使用一个点
所以基本上我分析了一个字符串表示的URL。我唯一想检查的是这个URL是否包含'.pdf'
但问题是,如果URL内容只是'pdf',它也会进入IF条件。所以我不太明白,是'。'一个特殊的caracter?
if (URL.match(".pdf"))
是的。
您需要使用反斜杠进行转义。
if (URL.match(/\.pdf$/i))
的$
意味着该URL必须与该模式
更新结束:
我不知道在哪个范围内运行的代码,但使用jQuery你也可以创建一个选择器,它符合如下要求:
var $pdf_only = $('a[href$=\\.pdf]');
这将查询所有锚,这HREF与.pdf
是结束。 match()
需要正则表达式作为它的参数。您应该用文字在这里正则表达式和逃避.
:
if (URL.match(/\.pdf/))
或者你使用一个字符串,你需要加倍逃避它,因为反斜杠是一个特殊字符在字符串:
if (URL.match("\\.pdf"))
正则表达式中未转义的.
表示“任何字符”。
使用正则表达式文字并转义点。
if (url.match(/\.pdf$/) {
// shazam
}
或者作为字符串
if (url.match("\\.pdf$") {
// shazam
}
RoToRa击败了我;) – BGerrissen 2011-03-22 11:03:19
对不起^^'Thansk为你提供帮助;) – Sindar 2011-03-22 11:04:59
所以....如果点是一个特殊字符,这是什么意思? – Thilo 2011-03-22 11:01:07
我已经尝试过'\ .pdf',但它没有改变这个问题。仍然输入IF条件 – Sindar 2011-03-22 11:01:17
Afaik双反斜杠在传递字符串而不是正则表达式时转义反斜杠。 – BGerrissen 2011-03-22 11:01:33