JavaScriptが文字列から数値を取得する


6 Answers

次のことを試してください:

var txt = "#div-name-1234-characteristic:561613213213";
var numb = txt.match(/\d/g);
numb = numb.join("");
alert (numb);​

結果

1234561613213213
Question

私は `#box2 'のような文字列をjavascriptで持っていますが、私はちょうどそれから' 2 'を望みます。

試してみる:

var thestring = $(this).attr('href');
var thenum = thestring.replace( /(^.+)(\w\d+\w)(.+$)/i,'$2');
alert(thenum);

それでも警告の#box2を返しますが、どうすればそれを動作させることができますか?

それは、最後に付けられた任意の長さ番号に対応する必要があります。




#box2ような文字列の#box2 、これはうまくいくはずです:

var thenum = thestring.replace(/^.*(\d+).*$/i,'$1');

jsFiddle:




私はこの正規表現があなたの目的に役立つと思います:

var num = txt.replace(/[^0-9]/g,'');

ここで、 txtはあなたの文字列です。

それは基本的に数字ではないものを取り除きます。

私はあなたもこれを使って同じことを達成できると思います:

var num = txt.replace(/\D/g,'');



あなたは素晴らしいparseIntメソッドを使うことができます

先頭の数字を数字に変換します

parseInt("-10px");
// will give you -10



この1行のコードを使用して、文字列内の最初の数字をエラーなしで取得します。

var myInt = parseInt(myString.replace(/^[^0-9]+/, ''), 10);



アンダースコア文字列ライブラリは、次のように使用できます

var common="#box"
var href="#box1"

_(href).strRight(common)

結果は次のようになります。1

参照: https://github.com/epeli/underscore.string : https://github.com/epeli/underscore.string

デモ:
http://jsfiddle.net/abdennour/Vyqtt/
HTMLコード:

<p>
    <a href="#box1" >img1</a>
    <a href="#box2" >img2</a>
    <a href="#box3" >img3</a>
    <a href="#box4" >img4</a>
</p>
<div style="font-size:30px"></div>

JSコード:

var comm="#box"
$('a').click(function(){
  $('div').html(_($(this).attr('href')).strRight(comm))})

次のような接尾辞がある場合:

href="box1az" 

あなたは次のデモを使うことができます:

http://jsfiddle.net/abdennour/Vyqtt/1/

function retrieveNumber(all,prefix,suffix){
 var left=_(all).strRight(prefix);
 return _(left).strLeft(suffix);

}



以下を試してください: string.replace(/[^0-9]/g, ''); これにより、数字以外の文字がすべて削除され、文字列には数字だけが残されます

function retnum(str) { 
    var num = str.replace(/[^0-9]/g, ''); 
    return parseInt(num,10); 
}

console.log('abca12bc45qw'.replace(/[^0-9]/g, ''));
console.log('#box2'.replace(/[^0-9]/g, ''));




Related