• 締切済み

javaScriptで文字列の数字判断について

こんにちは。 神奈川の大学生です。 学校でプログラムを少し勉強しています。 初心者ですが宜しくお願いします。 質問なんですが フォームから文字列を取り出し JAvaScriptでチェックしたいです。 その文字列が例えば”KKK0001”だとして 前から4桁目から数字だと判断したいです。 この数字と文字を分ける(判断する?)には何を使えばよいでしょうか? ずーと考えて調べていますがわかりません。 宜しくお願い致します!

みんなの回答

  • susie-t
  • ベストアンサー率86% (37/43)
回答No.2

> "KK002KK" > のときはどうしたらいいんでしょうか? ん? 最終的なお望みの結果は一体何でしょうか? 何文字目が数字かというのはsearchでいいと思うのですが。 "KK002KK"の"002"を抽出したいのか、 それとも数字が3文字目から5文字目という情報ですか? とりあえず、抽出するなら var str = "KK002KK"; var matches = str.match(/\d+/); var num = ""; if(matches != null){ num = matches[0]; } となります。(これは数字の列が一つの前提です)

  • susie-t
  • ベストアンサー率86% (37/43)
回答No.1

Stringのsearchメソッド、および正規表現を使用します。 var str = "KKK0001"; var index = str.search(/\d/); で3がindexに格納されます。(つまり4文字目) 数字がなければ-1です。 \dは正規表現で数字を意味します。 4文字目以降がすべて数字であるかどうかの判断を したいとなると、また別ですが・・・。

yuriko1155
質問者

お礼

ありがとうございます。 なるほどですね。 .searchを使うんですね。 これは、 文字がindexで帰ってきますが、 数字があるなしを判断できませんか?

yuriko1155
質問者

補足

-1が帰ってきますね。 すいません。 勘違いしてました!!!! ”KK002KK” のときはどうしたらいいんでしょうか?

関連するQ&A

  • javascriptで文字列の編集を行わせようと考えています。

    javascriptで文字列の編集を行わせようと考えています。 アルファベット小文字で挟まれたハイフンのみ削除したいのですが。。。 例) 文字列:asf-fgh-K-prt-1er を 編集後:asffgh-K-prt-1er どなたかjavascriptのプログラムを教えていただけないでしょうか?

  • 文字列の一番右が数字であるかどうかの判断

    お世話になります。 文字列の一番最後が数字である場合と数字でない場合について判断する方法を教えて頂きたいのですが、数字である場合 then以下の処理をするという風にしたいと思っています。ですが以下のところでつまずいて数字であるかどう確かめればよいのやらわからないので教えて下さい。    If Right("abcdef7", 1) = ここに何を書けばいいのでしょう?    Then 処理する。    end if という文なんですけど。=の右はなにをかけばいいのでしょうか?

  • Excel セル内の文字列の数字の桁数を増す方法について

    エクセル2000にて、セル内に4桁、6桁、7桁、8桁の文字列の数字が、別々に入っているとき、文字列の数字が7桁の時のみ 0 を書き加えて、8桁にする方法を教えてください。 例)A1 4001 33000018 6200095 →06200095 6100092 →06100092 4176 200025 6100061

  • 数字と文字列から数字のみ取り出したい

    下記のような数字と文字の組み合わさった文字列から数字のみを取り出したいのですが、 基準となる文字もなく、数字の桁、文字数もバラバラで、さらに文字部分にも数字が 入っていて調べた数式が使えず困っています。 (例1)109778大倉山マンション第3⇒109778 を取り出したい (例2)13482マックハイム綱島第10 ⇒ 13482 を取り出したい (例3)12896ハイム大倉山⇒12896 を取り出したい (例4)1198藤和シティコープ大倉山太尾町A棟⇒1198を取り出したい 調べた数式=LEFT(A1,LEN(A1)*10-SUM(LEN(SUBSTITUTE(A1,{0,1,2,3,4,5,6,7,8,9},)))) 上記の数式だと(例1)(例2)の場合、建物名の数値を反映してしまい数値のみ取り出せません。 数値部分はみたところ4~6桁でした。 何か良い数式がありましたら、ご教授願います。

  • 文字列の修正

    初心者です よろしくお願いします Excel2010で次のようなことがしたいです 列のセルには次のような文字列が入っています  文字列 No.3 とか No.26 とか No.302 とかです  要するに「No.」の後に数字のところが 1桁 または 2桁 または 3桁です やりたいことは No.3はNo.003に No.26はNo.026にと 桁数を3桁に揃わせたいのです 関数にそのようにするものがあるのでしょうか? またあれば 同時に使い方も教えて頂きたいです よろしくお願いします。

  • セル内の数字も混じった文字列から特定パターンの数字列を取り出す

    またまたお世話になります。  (1)セル内に1つまたは2つのハイフンでつながる数字列を含む文字列(ブランクも含みます)がある場合にそこからその数字列のみを取り出す方法をアドバイス願います。  例 cを文字、xを数字(最大7桁)とします。 セル内の文字列 cccccc cccc cccc xxxxxxx-xx-x ccccccc cccc cccc からxxxxxxx-xx-x を取り出して文字列として別のセルに置く方法です。 (2) もしこのxxxxxxx-xx-x が[ と ] で囲まれていた場合はもう少し容易になりますか?  よろしくお願いします。  

  • Excelの数字の文字列入力で

    Excel2003です。 セルに   "651,652,653" のような3ケタ分の数字とカンマの文字列を入力しようとすると    651652653 という数値にみなされてしまいます。 入力するときに、文字列の先頭に ’ を付けると文字列に みなしてもらえるのですが、つい忘れてしまい面倒です。 セルに指定などで設定する方法は何かありますでしょうか。 よろしくお願いします。

  • Excel2000のセル内の文字列の数字の先の2桁を取り出す方法について

    年のいった初心者です。 以前の質問に対する回答有難うございます。また、教えてください。  エクセル2000です。セル内に数字の文字列で、4桁、6桁、8桁のものが有ります。4桁のものには"01"を、6桁のものには"60"を、表示し、8桁のものには数種類あり、8桁の場合は、各文字列で上位の2桁を表示したいのです。 =IF(LEN(A1)=4,"01",IF(LEN(A1)=6,"60",IF(LEN(A1)=8,?????? 4桁、6桁については以前に教えていただいた、関数等でいけたのですが、8桁のときが分かりません。困っています。お願いします。     A列    B列 1 7532 →→ 01 2 280573 →→ 60 3 34964821 →→ 34 4 06839775 →→ 06 5 67500023 →→ 67

  • コンピュータは"数字"か「文字」かどうやって!判断

    コンピュータは"数字"か「文字」かどうやって!判断しているのですか? C言語でしたら  kakaku=1+2/*右側が自動的に3と計算されるのはなぜ・文字と数字の認識はどうやって行っているのですか*/ あくまでの私の憶測ですが!? コンパイラソフトなどをセットアップすると!数字は文字とは違う位置決めをする”数字”としての働きをするように!あらかじめプログラムされているから、数字としての機能する!?だとは思うのですが? ”本当”はどうなんでしょうか?  宜しくお願いします。

  • 期待する文字列

    フリーウェアのBorland c++compiler 5.5で 動的メモリーを確保して、期待する文字列(実数文字)が入力されるまで 繰り返すというプログラムを作っています。 以下のプログラムだけだと正常に動作しますが、その関数をループさせて 期待する文字列までループさせると数字のみなら実効可能ですが、 数字以外の文字が混じって15文字以上になると「不正な処理~~~」と強制終了させられます。 以下が そのプログラムの考え方です。 1 関数 A() 動的メモリーの確保   2へ 2 関数 B() 文字の読み込み(必要に応じてメモリー拡張) 3へ 3 関数 C() '.'個数チェック 2=エラー表示            1=小数点の書き換え(数字) 4へ            0=             4へ 4 関数 D() 関数isdigitで各メモリーをチェック 無限ループを使って int i=1; while(i) { 関数 A() }iのアドレス(ポインタ)を4まで引数にして iの値を0に書き換えループから脱出させています c言語を勉強して2週間の初心者です。どこがいけないのか 分かりません。 どなたか教えてください。          

専門家に質問してみよう