プロが教えるわが家の防犯対策術!

正規表現について勉強中です。
先頭2文字をたとえばYQで入力させたい場合は
どうマッチさせればよいのでしょうか?
if string.match(/^YQ|[0-9]/) == null {
nullの場合の処理
}
としていますが、うまくいきません。
正規表現についてはまったくの初心者ですので、
笑わないでくださいね。

A 回答 (4件)

>「YQ0123-123」のようにYQで始まり、その後に数字が4桁-3桁で表記



はい、わかりました。「/^YQ\d{4}-\d{3}/」でOKです(ハイフンが入るんですよね?)。
「\d」は任意の数字(digit)を表し、{4}は4回の繰り返しを意味します。
しかし「{}」の回数指定は書くのは楽ですが遅くなる可能性もありますので、
その場合は「\d\d\d\d-\d\d\d」と明示的にその回数だけ重ねてください。

「とほほの JavaScript 入門(正規表現)」でお勉強できますよ。

参考URL:http://tohoho.wakusei.ne.jp/wwwjsreg.htm
    • good
    • 0
この回答へのお礼

ありがとうございます+++
できました。
いいサイトも教えてもらってうれしいです。

お礼日時:2003/05/25 19:32

失礼、Java ではなくて JavaScript でしたね。

後段は忘れてください。

この回答への補足

JavaとJavaScriptって
文法が変わるのですか?
すみません。
JavaScriptしかやったことなくって。

補足日時:2003/05/25 17:08
    • good
    • 0

「/^YQ|[0-9]/」では「先頭2文字が YQ」または「任意の場所の数字1文字」


にマッチすることになりますが、それでよろしいでしょうか?
つまり、先頭が「YQ」であるかないかに関係なく数字さえ出現すれば
マッチすることになりますが、それではまずいと言われるなら
具体的にどんなパターンにマッチさせたいか教えてください。

それから、「string.match」の部分ですが、「match」というメソッドではなく
「matches」ではなかったですか?

この回答への補足

任意の場所に数字が入るだけなのは
まずいのです。
たとえば、「YQ0123-123」のように
YQで始まり、その後に数字が4桁-3桁で
表記し、DBに登録させたいのです。
よろしくおねがいしますぅ

補足日時:2003/05/25 17:05
    • good
    • 0

先頭2文字がYQで後は何でもいいという場合


^YQ.*
と書くと思います。

この回答への補足

早速の回答ありがとうございます。
残念ながらうまくいきませんでした。
補足してくのでまた教えてくださいね。

補足日時:2003/05/25 17:03
    • good
    • 0

お探しのQ&Aが見つからない時は、教えて!gooで質問しましょう!