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この形式に固定されています:例:P001P999

私がやりたいのは非常に基本的なことです。削除Pして先頭0(ある場合)を削除するだけです。ただし、上記のコードは機能していません。助けてくれてありがとう

4

4 に答える 4

11

次のように使用してください。

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

于 2012-12-19T10:16:19.663 に答える
1

この関数への入力が有効であることが保証されている場合 (つまり、P001...P999 の形式)、次のように単純に整数を抽出できます。

parseInt(path.substr(1), 10)
于 2012-12-19T10:15:50.477 に答える
1

これは、グローバルparseInt関数の完璧な使用例のようです。

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

解析する文字列とベースを入力として受け取ります。ベースはオプションですが、ほとんどの人は、エッジケースで発生する可能性のある驚きを避けるために、常に明示的にベースを設定することをお勧めします。

数値ではない値 (空白を除く) に遭遇するとすぐに、文字列の解析を停止します。このため、上記のスニペットでは、最初の文字を取り除いた入力文字列を渡しています。これは、あなたが言及したように、文字「P」です。

また、ES2015 ではparseInt、コンストラクターの静的メソッドとして関数が導入されましたNumber

于 2012-12-19T10:16:31.867 に答える
0

たった一行で欲しいものが手に入る

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

P と先頭の "0" を削除するソリューション。

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

感謝と敬意

于 2012-12-19T11:12:50.593 に答える