2012-12-19 34 views
0
var patt = path.match(/P[0-9][0-9][0-9]/); 
patt = patt.substr(1); //Remove P 

while(patt.charAt(0) === '0') { //Remove 0 
    patt = patt.substr(1); 
} 

alert(patt); 

patt固定爲這種格式: 例如: P001P999javascript中的字符串操作(刪除前導零和特定字符)

我想這樣做是非常基本的,只是刪除P和領先0(如果有的話)。但是,上面的代碼不起作用。感謝您的幫助

+0

如果刪除前導零,你會不會在你的第一個例子中使用'P1'結束了? –

+2

當然,你會在'patt = patt.substr(1)'行發生異常? 'String#match'的返回值是一個數組,而不是一個字符串;它沒有'substr'方法。 –

+0

@RoryMcCrossan結果是1 – user782104

回答

12

請像這樣使用它:

var str = patt.join('');
str = str.replace(/ P0 * /,'');

1

如果輸入到這個功能是保證有效(即形式P001 ... P999),那麼你可以簡單地使用下面的提取整數:

parseInt(path.substr(1), 10) 
+0

由於用於parseInt函數默認的基本不會工作是8 – efkah

+0

爲parseInt函數默認的鹼是10所有現代瀏覽器(如5的ECMAScript的)。但編輯答案明確地將基數設置爲10,爲了清楚起見,以及針對較舊的瀏覽器。 – tom

+0

對不起,問題是,尾隨0爲基數8的JavaScript解釋數字,parseInt函數是沒問題的,你是對的,還是喜歡'parseInt函數的東西(「084」)'是行不通的。 – efkah

1

用途:

parseInt(patt.substr(1), 10); 
0

只是一個單一的線,你會得到你想要的東西

var path = "P001"; //your code from P001 - P999 

液除去P和領先的 「0」。

parseInt(path.substr(1), 10); 

感謝和問候

相關問題