2014-11-04 259 views
0

我想下面的代碼來獲得輸出1.但不能得到它。使用正則表達式的Javascript正則表達式匹配

var labhost = '0'; 
var podmaster_node = "evhlab65.ms.com"; 
var matchtxt = new RegExp('\w+\.ms\.com', "i"); 


if (podmaster_node.match(matchtxt)) { 
    labhost = '1'; 
} 

alert(labhost); 

請幫我解決這個問題。

謝謝!

+0

究竟應該正則表達式匹配? – Cerbrus 2014-11-04 08:08:50

回答

2

當你在RegExp構造逃脫正則表達式,你需要逃脫這樣

var matchtxt = new RegExp('\\w+\\.ms\\.com', "i"); 

\w+,轉化爲w+。所以你需要跳出\\\,這使得\作爲正則表達式的一部分。

var labhost = '0'; 
 
var podmaster_node = "evhlab65.ms.com"; 
 
var matchtxt = new RegExp('\\w+\\.ms\\.com', "i"); 
 

 

 
if (podmaster_node.match(matchtxt)) { 
 
    labhost = '1'; 
 
} 
 

 
document.getElementById("result").innerHTML = labhost;
<div id="result" />

注:更好的方式來做到這一點是使用正則表達式文本,這樣

var matchtxt = /\w+\.ms\.com/i;