2016-05-17 57 views
0

我必须通过它的前两个字母来匹配字符串,使用正则表达式来检查可用的特定两个字符作为字符串的前两个字母。 这里假定前两个字符是'XX'。正则表达式JavaScript通过前两个字符匹配字符串

,我需要匹配的字符串是

  • ABCDS
  • XXDER
  • DERHJ
  • XXUIO

所以我需要对此列表进行过滤得到的字符串只能将启动'XX'

code I trie ð到目前为止

var filteredArr = []; 
var arr = [ "ABCDS ", "XXDER ", "DERHJ ", "XXUIO" ]; 
var re = new RegExp('^[a-zA-Z]{2}'); 
jQuery.each(arr, function(i, val) { 

if(re.test(val)){ 
    filteredArr.push(val); 
} 
}); 

会有什么确切的正则表达式来检查开头的字符串 'XX'

+0

你要检查,如果前两个字符是一样的吗? – jcubic

+0

我推荐你使用这些工具来避免头疼:https://regex101.com/&http://txt2re.com/ – Bigood

+0

不,我想检查以'XX'开头的字符串 – tarzanbappa

回答

4

只是一味

var filteredMatches = arr.filter(function(val){ 
    return val.indexOf("XX") == 0; 
}); 
1

试试这个:

var arr = [ "ABCDS ", "XXDER ", "DERHJ ", "XXUIO" ]; 
 
// match if two letters at the beginning are the same 
 
var re = new RegExp('^([a-zA-Z])\\1'); 
 
var filteredArr = arr.filter(function(val) { 
 
    return re.test(val); 
 
}); 
 
document.body.innerHTML = JSON.stringify(filteredArr);

0

我建议字符串匹配:

var arr = [ "ABCDS ", "XXDER ", "DERHJ ", "XXUIO" ]; 
 

 
var r = arr.filter(x => x.match(/^XX/)) 
 

 
console.log(r)

0

使用filter用不太复杂的正则表达式:

var filtered = arr.filter(function (el) { 
    return /^X{2}/.test(el); 
}); 

DEMO

1
var filteredArr = []; 
var arr = [ "ABCDS ", "XXDER ", "DERHJ ", "XXUIO" ]; 
var re = new RegExp('^XX'); 
jQuery.each(arr, function(i, val) { 

if(re.test(val)){ 
filteredArr.push(val); 
} 
}); 
  • ^在行
1

你可以简单地使用JavaScript .startsWith()方法的开始意味着比赛。

var arr = [ "ABCDS ", "XXDER ", "DERHJ ", "XXUIO" ]; 
 

 
var filteredArr = arr.filter(function(val){ 
 
    return val.startsWith("XX"); 
 
}); 
 

 
console.log(filteredArr);