簡體   English   中英

正則表達式javascript如何檢查aa_bb

[英]Regular Expressions javascript how to check aa_bb

我正在嘗試在URL中查找2位數字的字符串。 例如:

www.abc.com/ff_gg/abc

我可以用以下方法檢查它:

if (window.location.href.indexOf("ff_gg") > -1) {
    // 
} else ...

但是ff _ gg可以是隨機字符串。 如何使用正則表達式將ff gggg保存為變量? ffgg將以_分隔。

您可以使用帶有正則表達式的String#search ,而不是String#indexOf RegExp#test

另請參閱RegExp了解表達式。

 const text = 'www.abc.com/ff_gg/abc'; const rx = /\\/[az]{2}_[az]{2}\\//i; if (text.search(rx) > -1) { console.log('found'); } else { console.log('not found'); } if (rx.test(text)) { console.log('found'); } else { console.log('not found'); } 

您可以使用類似於String#match和capture的regex或RegExp#exec

或者使用String#splitString#slice字符串操作。

如您所見,有多個選項(甚至還有更多我沒有提到的選項),但是我現在沒有時間為每個選項創建示例。

 const text = 'www.abc.com/ff_gg/abc'; const match = text.match(/\\/([az]{2})_([az]{2})\\//i); if (match) { console.log(match); } 

 const text = 'www.abc.com/ff_gg/abc'; const rx = /\\/[az]{2}_[az]{2}\\//i; const index = text.search(rx); if (index > -1) { console.log(text.slice(index + 1, index + 1 + 5).split('_')); } 

([a-zA-Z]{2})_([a-zA-Z]{2})

用_分隔的2個捕獲組可以完成正則表達式。

然后使用match()將返回匹配的組

演示

在javascript中,您可以創建RegExp對象。 有關RegExp對象的更多信息,請參見https://developer.mozilla.org/en-US/docs/Web/JavaScript/Guide/Regular_Expressions

下面的示例應該起作用:

 var url = "www.abc.com/ff_gg/abc"; var reg = new RegExp("([a-zA-Z]{2})_([a-zA-Z]{2})"); if (reg.test(url)) { var matches = url.match(reg); var ff = matches[1]; var gg = matches[2]; console.log("group1: " + ff); console.log("group2: " + gg); console.log("do something"); } 

這也是正則表達式的示例: http : //regexr.com/3e8a7

暫無
暫無

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

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