正则表达式匹配任何字符串的前半部分?

时间:2018-05-17 15:33:34

标签: javascript regex

如果没有变量量词,我发现这很难做到

我希望能够做一些像

这样的事情
var halfStrLength = string.length /2 


string = string.replace(/.(?=.{halfStrLength})/g, '*') 
// replaces all but the last half of string with *

3 个答案:

答案 0 :(得分:2)

请考虑使用str.slice(beginIndex[, endIndex])。它返回一个新字符串。

您可能想要向下或向上舍入halfStrLength,因为您不希望尝试将字符串分成两半小数。

答案 1 :(得分:1)

您可以像这样创建新的RegExp:

    var times = string.length / 2;
    var regexp = new RegExp('(.{'+times+'})');

    string = string.replace(regexp,'*');

答案 2 :(得分:0)

  

*

替换除字符串后半部分以外的所有字符串

只需使用String.substr()String.padStart()(Ecmascript 6)函数:



var s = 'halfStrLength',
    half = s.substr(s.length / 2).padStart(s.length, '*');
  
console.log(half);