2016-05-17 207 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);