2015-08-19 59 views
0

我有要求從字符串中刪除最後n個字符或從特定字符串中刪除'page'。 如:刪除最後n個字符的正則表達式

var string = 'facebookpage'; 

Expected output string = 'facebook' 

我想從字符串中刪除「頁」。

使用子字符串完成它。

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

你能幫我找到一些更好的方法來做到這一點。

+3

如果你特別要刪除 「網頁」,你可以使用'replace':'無功海峽= str.replace(頁面', '')',否則有可能不是一個更簡單的方法。 – Andy

+0

這是更好的方法。儘管通過正則表達式'str.replace(\ w {4} $,「」); ' –

+5

我認爲子串比正則表達式更好。 –

回答

1

正則表達式是:

//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, ""); 

UPDATE:
但使用正則表達式完成這個任務,不好辦法;例如,AVG運行100000次迭代:

Str length solution = 63.34 ms 
Regex solution  = 172.2 ms 
+0

你在字符串的末尾缺少'$'。 –

+0

@ Olson.dev Nope。第一個變體 - 從0返回到n位置;但是,謝謝,你給了我這個想法,如何去除最後n個符號; – user3335966

+0

你的原始答案沒有回答OP,你的編輯。傳遞國旗「我」是多餘的。 –

1

使用JavaScript替換功能

var str = "facebookpage"; 
str = str.replace('page',''); 
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. 

希望這有助於。

相關問題