簡體   English   中英

為什么javascript regexp不匹配

[英]why javascript regexp doesn't match

(new RegExp('/videos/(\\d+)$')).test('/videos/1')返回false。 為什么?

(new RegExp('/videos/(\d+)$')) == /\/videos\/(d+)$/

/開頭,然后是videos字符串,然后是/再次,然后d+是1位或更多位數,所以1應匹配...

你需要逃避\\\\

 console.log( (new RegExp('/videos/(\\\\d+)$')).test('/videos/1') ); 

您應該在RegExp構造函數中轉義特殊字符:

 alert((new RegExp("\\\\/videos\\\\/(\\\\d+)$")).test('/videos/1')) 

MDN摘錄

使用構造函數時,需要使用普通的字符串轉義規則(前面包含字符串的特殊字符)。

這有效:

var s = '/videos/1';
s.match(/\/videos\/(\d+)$/);

就像這樣:

var regex = new RegExp(/\/videos\/(\d+)$/)
regex.test('/videos/1')

你看到了不同的東西嗎?

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM