【大喜利】【投稿~9/7】 ロボットの住む世界で流行ってる罰ゲームとは?

HTMLの背景色#ffcc33などをJavascriptで
フォームの入力チェックしたいのですが、
どのように正規表現を書けばよいでしょうか?
Netscape4.7でも対応しているような書き方が
あれば知りたいです。よろしくお願いします。

A 回答 (3件)

No.1の回答を見ていて気づいたんだけど僕のだと先頭と末尾かどうかチェックしてませんでしたね。



codekata = /#[0-9a-f]{6}/i;
     ↓
codekata = /^#[0-9a-f]{6}$/i;
    • good
    • 0

とりあえずサンプルを



*****これよりスクリプト部分*****
function irochousa(formname){
irokigou = formname.irocode.value;
codekata = /#[0-9a-f]{6}/i;
if(codekata.test(irokigou)){
alert("OK");
}
else{
alert("NG");
}
}
*****これまでスクリプト部分*****
*****これより本体*****
<form>
<input type="text" name="irocode">
<input type="button" value="チェック" onClick="irochousa(this.form)">
</form>
*****これまで本体*****

ひょっとして#はいらなかった?コードは3字でもよかった?
    • good
    • 0

正規表現でやるなら


  .match(/^#[0-9A-Fa-f]{6}$/)
でできます。
これを、
  function checkRGB(str) {
    return str.match(/^#[0-9A-Fa-f]{6}$/) ? 0 : 1;
  }
のように関数化しておき、
  if (checkRGB(document.FormName.TextboxName.value) != 0) {
    // 正しくない
  }
のように使えばよいでしょう。

ちなみに正規表現を使わないなら、
  function checkRGB(str) {
    if (str.charAt(0) != "#") return 1;
    if (str.length != 7) return 1;
    for (var i = 1; i <= 6; i++)
      if ("0123456789ABCDEFabcdef".indexOf(str.charAt(i)) == -1)
        return 1;
    return 0;
  }
のような感じ。使い方は正規表現版と同じです。
    • good
    • 0
この回答へのお礼

すごくわかりやすい書き方で回答いただきありがとうございます。勉強になります。
正規表現版でない方は、古いブラウザでも使えそうです。ありがとうございました。

お礼日時:2003/08/03 16:55

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


おすすめ情報