2014-11-04 262 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;