2017-06-16 21 views
-2

我有一個字符串,我只是想驗證以下字符串如何檢查輸入字符串必須遵循下面的後綴?

one=1&two=2 - 此字符串將被視爲有效

23=2&sa=32fd - 此字符串也將被視爲有效

12one=&13&=3 - 此字符串會認爲無效

什麼是最好的方式來驗證字符串,如這些?

+0

不是有效和無效的字符串顯示例子,你必須能夠解釋(通過模式)什麼是和不是有效的。目前,還不清楚你的邏輯是什麼。 –

+0

JavaScript還是Java? – PeterMader

+1

javascript和java是不同的語言,你使用哪一種? – JonK

回答

1

如果你堅持使用正則表達式,你可以這樣做:

^(?:\w*?=\w*?&?)+$ 

Live Demo

const regex = /^(?:\w*?=\w*?&?)+$/gm; 
 
const str = ` 
 
one=1&two=2 
 
23=2&sa=32fd 
 
12one=&13&=3`; 
 
let m; 
 

 
while ((m = regex.exec(str)) !== null) { 
 
    // This is necessary to avoid infinite loops with zero-width matches 
 
    if (m.index === regex.lastIndex) { 
 
     regex.lastIndex++; 
 
    } 
 

 
    // The result can be accessed through the `m`-variable. 
 
    m.forEach((match, groupIndex) => { 
 
     console.log(`Found match, group ${groupIndex}: ${match}`); 
 
    }); 
 
}

不過,我會建議尋找到一些Query string解析庫。

0

下面將驗證完整的字符串,以及捕獲的個體相匹配

^([\w|\d]+\=[\w|\d]+\&?)+$ 

如果你只是想驗證字符串只有Olian04的回答工作

相關問題