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

Javascript 用于删除最后n个字符的正则表达式,javascript,regex,Javascript,Regex,我需要从字符串中删除最后n个字符或从特定字符串中删除“页面”。 例如: 我想从字符串中删除“page” 使用子字符串完成它 var str = "facebookpage"; str = str.substring(0, str.length - 4); 你能帮我找到更好的方法吗 使用javascript替换函数 var str = "facebookpage"; str = str.replace('page',''); 使用javascript替换函数 var str = "fac

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

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

使用子字符串完成它

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

你能帮我找到更好的方法吗

使用javascript替换函数

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

使用javascript替换函数

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

可以使用以下正则表达式:

(.*)\\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.

希望这有帮助。

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

(.*)\\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.
希望这能有所帮助。

正则表达式:

//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, "");
更新:
但是使用正则表达式来完成这个任务,不是一个好方法;例如,100000次迭代的平均运行时间:

Str length solution = 63.34 ms
Regex solution      = 172.2 ms
此项的正则表达式:

//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, "");
更新:
但是使用正则表达式来完成这个任务,不是一个好方法;例如,100000次迭代的平均运行时间:

Str length solution = 63.34 ms
Regex solution      = 172.2 ms

如果您特别想删除“页面”,可以使用
replace
var str=str.replace('page','')
,否则可能没有更简单的方法。这是更好的方法。虽然通过regex
str.replace(\w{4}$,“”)
我认为substring比regex好。如果您特别想删除“page”,可以使用
replace
var str=str.replace('page','')
,否则可能没有更简单的方法。这是更好的方法。虽然通过regex
str.replace(\w{4}$,“”)
我认为substring比regex好。字符串结尾缺少
$
。@Olson.dev Nope。第一个变量-从0位置返回到n位置;但是谢谢,你给了我一个想法,关于如何准确地删除最后n个符号;您的原始答案没有回答OP,您的编辑回答了。传递标志“i”是多余的。字符串结尾缺少
$
。@Olson.dev Nope。第一个变量-从0位置返回到n位置;但是谢谢,你给了我一个想法,关于如何准确地删除最后n个符号;您的原始答案没有回答OP,您的编辑回答了。传递标志“i”是多余的。