代码之家  ›  专栏  ›  技术社区  ›  Nasrul Bharathi

重复的字符串值需要分开

  •  0
  • Nasrul Bharathi  · 技术社区  · 7 年前

    我怎么分开 abcabc 作为 abc

    注: bacbac , defdef namename BallBall

    4 回复  |  直到 7 年前
        1
  •  4
  •   Joe Iddon    7 年前

    因为它总是两个相同长度的词:

    let s = 'abcabc'
    console.log(s.slice(0, s.length/2));
        2
  •  2
  •   Nina Scholz    7 年前

    您可以通过使用一个惰性量词和对最后一个模式的正向展望以及对空字符串的filterign来拆分数组。

    var string = 'ababab',
        array = string.split(/(.+?)(?=\1)/).filter(Boolean);
        
    console.log(array)
        3
  •  1
  •   Luca Kiebel    7 年前

    把绳子一分为二:

    function inHalf(str) {
      let middle = Math.ceil(str.length / 2);
      return str.slice(0, middle);
    }
    
    console.log(inHalf("abcabc"))
    console.log(inHalf("bacbac"))
    console.log(inHalf("somethingsomething"))
        4
  •  0
  •   Tim Biegeleisen    7 年前

    如果要替换所有出现的单词,这些单词都是彼此的“镜像”,请尝试此选项:

    var string = "Hello abcabc world defgdefg blah blah";
    console.log(string.replace(/\b(.*)\1\b/mg, "$1"));

    镜像字可以使用以下模式进行匹配:

    \b(.*)\1\b
    

    这将匹配一些数量,正好是一个单词的一半,然后在后半部分按相同的顺序。然后,我们可以用镜像词的一半来代替它。