用于删除最后n个字符的正则表达式

时间:2015-08-19 12:19:39

标签: javascript regex

我需要从字符串中删除最后n个字符或从特定字符串中删除“page”。 例如:

var string = 'facebookpage';

Expected output string = 'facebook'

我想从字符串中删除“page”。

使用子字符串完成它。

var str = "facebookpage";
str = str.substring(0, str.length - 4);

你能帮我找一些更好的办法吗?

3 个答案:

答案 0 :(得分:2)

正则表达式:

//str - string;
//n - count of symbols, for return 
function(str, n){
  var re = new RegExp(".{" + n + "}","i");
  return str.match(re);
};

修改

删除最后n个字符:

var re = new RegExp(".{" + n + "}$","i");
return str.replace(re, "");

<强>更新
但是使用正则表达式完成这项任务,并不是好方法;例如,AVG Runtime进行100000次迭代:

Str length solution = 63.34 ms
Regex solution      = 172.2 ms

答案 1 :(得分:1)

使用javascript替换功能

 var str = "facebookpage";
 str = str.replace('page','');

答案 2 :(得分:0)

您可以使用此正则表达式:

(.*)\\w{4}

代码:

var regex =(new RegExp("(.*)\\w{4}"))
val output = regex .exec("facebookpage")
// output is : ["facebookpage", "facebook"]
// output[1] is the Expected output which you want.

希望这有帮助。