[英]Using regex to only retrieve string with 7 digits
簡而言之,頁面包含大約10個div,每個div包含字母和數字,我試圖返回所有出現的正好7位數,但前后可以有其他非數字字符。
例如。
“q1234567”應返回1234567
“q1234567q”應返回1234567
“q1234567q1234567q12345678q”應返回1234567和1234567
不應退回“12345678”
更具體地說,整個字符串的示例:
q1234567q
q1234567q
q12345678q
q1234567q123456789q123456q1324567q1234567
1234567
1
12
123
1234
12345
q12345q
q1234
12345q
123
我嘗試通過正則表達式做到這一點,並得到了
/\d{7}(?=\D|$)/g
但是JavaScript並不能很好地適應外觀。如何在不涉及全新庫的情況下解決這個問題?
這個正則表達式應該工作:
/^\D*\d{7}\D*$/
更新:根據下面編輯的問題和評論,您可以使用此正則表達式:
(?:^|\D)(\d{7})(?=\D|$)
並使用匹配的組#1作為輸出。
你可以使用這樣的東西嗎?
var regex = /(?:^|\D)(\d{7})(?!\d)/g;
var s = "q1234567q123456789q123456q1324567q1234567";
var match, matches=[];
while ( (match=regex.exec(s)) !== null ) {
matches.push(match[1]);
}
alert(matches);
怎么樣: (?<=\\D)[0-9]{7}(?=\\D|$)|^[0-9]{7}(?=\\D|$)
?
var regex = /(\b|\D)(\d{7})(\b|\D)/g
function get7digits(s) {
var md, matches=[];
while( (md=regex.exec(s)) !== null ) matches.push(md[2]);
return matches;
}
get7digits('q1234567q123456789q123456q1324567q1234567')
[“1234567”,“1324567”]
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.