2017-06-02 108 views
1

我想匹配的3個字母和3個數字與regexpexec。但我沒有得到任何結果。任何想法有什麼不對?該代碼是:正則表達式與.exec不工作

var regnr = "This is the pattern to match: WBJ124"; 
var patt = new RegExp("^\b[a-zA-Z]{3}\d{3}\b*$"); 
var sequence = ''; 
var grps = patt.exec(regnr); 
if(grps!=null){ 
    sequence = grps[0]; 
} 

sequence是空的,但我希望它是WBJ124

問候

+0

@anubhava不工作,以及:/ – user1665355

+0

@anubhava請賴特例如一個答案,也許我做錯事的時候。 – user1665355

+0

[保存精通的視覺查看](https://regexper.com/#%2F%5E%5Cb%5Ba-zA-Z%5D%7B3%7D%5Cd%7B3%7D%5Cb*%24%2F) – epascarello

回答

2

你在你的正則表達式的一些失誤喜歡使用^$當你匹配一個子在一個更長的字符串。此外,您正在使用接受字符串文字的RegExp對象,因此需要雙重轉義。

您可以使用:

var regnr = "This is the pattern to match: WBJ124"; 
var patt = /\b[a-zA-Z]{3}\d{3}\b/; // or new RegExp("\\b[a-zA-Z]{3}\\d{3}\\b") 
var grps = patt.exec(regnr); 
+1

謝謝!儘快接受 – user1665355