人力検索はてな
モバイル版を表示しています。PC版はこちら
i-mobile

Javascriptで16pt、20px、9em、などの文字列を数値と単位に分解するコードを探しています。コピペで使えて、クロスブラウザ対応の物を探しています。

きちんと探して自分で考えれば作成できそうなのですが、どうしても時間が足りません。お力をお貸しいただける方、よろしくお願いいたします。


*コピペして使えるコードだけを探しています。
*作成の方法や概念、参考情報だけの投稿は必要ありません。

●質問者: ecmas
●カテゴリ:ウェブ制作
✍キーワード:JavaScript クロスブラウザ コピペ コード 作成
○ 状態 :終了
└ 回答数 : 2/2件

▽最新の回答へ

1 ● Cherenkov
●40ポイント ベストアンサー

動くサンプル http://jsfiddle.net/Ln9Vk/

こんな感じでどうですか。

bunkai関数は、正規表現で数字と単位を分けて、num・tanniが入ったオブジェクトを返します。

function bunkai(str) {
 var tmp = /(\d+)(\D+)/.exec(str);
 return {
 num: tmp[1],
 tanni: tmp[2]
 }
}

var s1 = '16pt';
var s2 = '20px';
var s3 = '9em';

var bs1 = bunkai(s1);
var bs2 = bunkai(s2);
var bs3 = bunkai(s3);

alert(bs1.num);
alert(bs1.tanni);

//alert(bs2.num);
//alert(bs2.tanni);
◎質問者からの返答

素早い回答ありがとうございます!サンプルまで用意していただけるなんて感激です!

IE8,FireFox,Safariで確認したところ大丈夫でした。後でマイナーバージョンも確認してみます。ありがとうございます。


2 ● ぽっか
●30ポイント

var str="120px"; // ここに調べたい文字列

var spltd = /(\d+)(\w+)/g.exec(str);

このとき、spltd[1]が数値、spltd[2]が単位になります。

ただ、取り出した数値は文字列扱いなので、数値として計算したいときは、

var val = parseInt( spltd[1] );

として、valを計算に使ってください。

また、数値を取り出すだけならparseInt(str)でも大丈夫です。

◎質問者からの返答

ありがとうございます。これでいけそうです。

関連質問


●質問をもっと探す●



0.人力検索はてなトップ
8.このページを友達に紹介
9.このページの先頭へ
対応機種一覧
お問い合わせ
ヘルプ/お知らせ
ログイン
無料ユーザー登録
はてなトップ