正则表达式Javascript按前两个字符匹配字符串

时间:2016-05-17 10:10:43

标签: javascript arrays regex string

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

我需要匹配的字符串是

  • ABCDS
  • XXDER
  • DERHJ
  • XXUIO

所以我需要过滤此列表以获取仅以' XX'

开头的字符串 到目前为止我尝试过的代码

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'

开头的字符串的确切正则表达式模式是什么?

6 个答案:

答案 0 :(得分:5)

只需尝试

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

答案 1 :(得分:3)

您只需使用JavaScript .startsWith()方法。



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

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

console.log(filteredArr);




答案 2 :(得分: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);




答案 3 :(得分: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);
 }
});
  • ^表示在行的开头匹配

答案 4 :(得分:0)

我建议字符串匹配:



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

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

console.log(r)




答案 5 :(得分:0)

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

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

DEMO