2017-06-02 38 views
2
之間

我需要檢查像*11F23H3*這樣的字符串,以*開頭和結尾,並且有7個大寫字母或數字。到目前爲止,我有:正則表達式* 11F23H3 *:以*開頭和結尾,7個大寫字母或數字在

if (!barcode.match('[*A-Z0-9*]')) { 
    console.error(`ERROR: Barcode not valid`); 
    process.exitCode = 1;  
} 

但是這並不能掩蓋串像*11111111111*。如何正確的正則表達式?

+0

您可以使用'/ \ * [A-Z0-9] {7} \ * /' – anubhava

+0

嘗試''^ [*] [A-Z0-9] {7} [*] $' –

回答

4

我需要檢查字符串像11F23H3開始和有*結束,在

之間

你可以使用這個表達式7個大寫文字或數字:

/\*[A-Z0-9]{7}\*/ 
  • *是需要在字符類外部逃脫的正則表達式元字符
  • [A-Z0-9]{7}將匹配包含大寫字母或數字
7個字符

RegEx Demo

代碼:

var re = /\*[A-Z0-9]{7}\*/; 

if (!re.test(barcode)) { 
    console.error(`ERROR: Barcode ${barcode} in row ${row} is not valid`); 
    process.exitCode = 1;  
} 

注意,如果條形碼只會有此字符串,那麼你也應該使用錨像這樣以避免匹配*任一側上的任何其他文本:

var re = /^\*[A-Z0-9]{7}\*$/; 
相關問題