簡體   English   中英

Javascript - 帶有字符串模板后跟 4 位數字的正則表達式?

[英]Javascript - Regular Expression with string template followed by 4 digits number?

再會。 我想檢測<a>標簽中的 url 字符串

<a href="http://virtualweb.test/en/?post_type=tribe_events&p=3642">Link</a>

是否匹配模式: ?post_type=tribe_events&p=#### (#### = 4 位數字)

我正在編寫一些 Jquery 代碼來檢測表達式,但控制台拋出錯誤:

無效正則表達式:/^(?)post_type=tribe_events&p=^(d{4})/:無效組

var str = $(a).attr("href");
var regexEx  = /^(?)post_type=tribe_events&p=^(d{4})/;
  var ok = regexEx.exec(str);
  console.log(ok);

我不擅長正則表達式,所以如果有任何幫助,我會很感激。

您的正則表達式中有幾個問題。

  • 您需要從正則表達式中刪除^ ,它表示字符串的開頭,在您的情況下,您的字符串實際上並不是從? 並且在字符串的中間。
  • 你需要逃跑? 因為它在正則表達式中具有特殊含義,即字符出現零次或一次。
  • 您需要在不需要的p=之后刪除第二個^
  • 你需要寫\\d而不僅僅是d來表示一個數字。
  • 你也不需要分組? \\d{4}除非你真的需要它們。

你更正了正則表達式,

\?post_type=tribe_events&p=\d{4}

演示

如果測試真的是你想要的,我想正確的語法是:

/^\?post_type=tribe_events&p=\d{4}/

暫無
暫無

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

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