使用substring javascript获取与字符串的匹配

时间:2016-02-29 16:12:54

标签: javascript jquery regex

想知道字符串的子字符串是否在另一个字符串中。

例如......

var firstString= test123; var secondString= nest145; var thirdString= test456; var fourString= teating456;

结果应该是在比较firstString和secondString

之后

est1匹配。

结果应该在比较firstString和thirdString

之后

test匹配。

结果应该是在比较firstString和fourString

之后

No match found.

限制检查字长可以决定。对于上面的例子,它是4

3 个答案:

答案 0 :(得分:3)

这是一个简单的示例,其中匹配的字母需要紧接着相邻。

var firstString = 'test123';
var secondString = 'nest145';
var thirdString = 'test456';
var fourString = 'teating456';

function findMatchedChars(str1, str2, limit) {
  var result = '', s1 = str1, s2 = str2;
  if (str2.length > str1.length) {
    s1 = str2;
    s2 = str1;
  }
  for (var x = 0; x < s1.length; x++) {
    if (s1[x] == s2[x]) {
      result += s1[x];
    } else {
      if (result.length > 0 && result.length >= limit) return result;
      result = '';
    }
  }
  if (result.length > 0 && result.length >= limit) return result;
  return 'No matches';  
}

alert(findMatchedChars(firstString,secondString,4));
alert(findMatchedChars(firstString,thirdString,4));
alert(findMatchedChars(firstString,fourString,4));

答案 1 :(得分:0)

这是牵引绳的LCS问题...... LCS

答案 2 :(得分:0)

这是正则表达式版本:

var firstString = 'test123';
var secondString = 'nest145';
var thirdString = 'test456';
var fourString = 'teating456';

function findDups(str1, str2, limit) {
  var re = '.*([^\\s]{' + limit + '}).*\\s+.*\\1.*'
  var m = (str1 + " " + str2).match(re)
  if (m != null) {
    alert(m[1])
  } else
    alert('No matches')
}

findDups(firstString, secondString, 4)
findDups(firstString, thirdString, 4)
findDups(firstString, fourString, 4)