2011-01-11 1 views
5

の終わりにはJavaScriptののparseIntを使用して、私は、文字列の最初の文字が数値である場合に文字列

parseInt(myString, 10) // "Never forget the radix" 

は数を返すことを知っているが、私は「COLUMN5のような文字列を持っている場合、私はJavaScriptでこれを行うことができますか"それを次のもの(" column6 ")にインクリメントしたいのですか?

文字列の末尾の桁数は可変です。

+2

2番目の引数なしでparseIntを使用しないでください。非常に奇妙なバグを望まない場合はここで10を入力してください。 – regilero

答えて

16
parseInt("column5".slice(-1), 10); 

を使用できlast_charインクリメント-1または-2それぞれ1〜2桁の数字、のために。

あなたが任意の長さを指定したい場合は、数字を返すために使用することができます以下

parseInt("column6445".match(/(\d+)$/)[0], 10); 

上記の文字列が1つの以上の数字で終わる限り、数字の任意の長さのために動作します

+2

+1の場合は、他の多くの人が忘れてしまったということです! – regilero

+0

3文字で何をしますか?または4または5または12? –

+0

私はこれが好きだが、.slice(6、string.length)はあなたに最後のX-many桁(a la benhowdle89のコメント)を与えるだろうと思う。 – sova

1
var my_car="Ferrari"; 
var the_length=my_car.length; 
var last_char=my_car.charAt(the_length-1); 
alert('The last character is '+last_char+'.'); 

クレジット

​​にそれからちょうど

+0

速い応答に感謝します!しかし、数字が可変桁数の場合はどうなりますか?私は何百もの列があると予想しています; x – sova

+0

2桁以上であればこれがうまくいくかどうかわかりません。 –

+2

これは細かいので、.length、これは文字列の文字数を計算します – benhowdle89

3

このお試しください:これはにtext11からtext10TxT1のような文字列に変換します

var match = myString.match(/^([a-zA-Z]+)([0-9]+)$/); 
if (match) { 
    return match[1] + (parseInt(match[2]) + 1, 10); 
} 

をなど。最後に長い番号で動作します。

既定のparseInt値が信頼されるためにmagicであるため、parseInt呼び出しに基数を追加しました。

詳細はこちらをご覧ください:

http://www.w3schools.com/jsref/jsref_parseInt.asp

は基本的に、それはよくないtext9text010のようなものを変換します;)。

2

テキストから数値を分割し、解析し、インクリメントしてから再連結します。

var precedingString = myString.substr(0, 6); // 6 is length of "column" 
var numericString = myString.substr(7); 
var number = parseInt(numericString); 
number++; 

return precedingString + number; 
0
  1. スプリット正規表現を使用して単語や数:前の文字列は、よく知られた、例えば、「列」であるならば、あなたはこのような何かを行うことができます。

  2. parseInt()を使用して番号を増やします。

  3. 単語に追加します。

0

文字列charをcharで読み取って、そのASCIIコードを調べてみます。その48から57まであなたはあなたの番号を持っています。 charCodeAt関数で試してください。それから、文字列を分割し、数字と数字を増やします。

関連する問題