• 締切済み

「')'がありません」とスクリプトエラー

前に作ったjavascript(現在別の箇所で活用中)を、 今回つくってる別のページに再利用しようとしたら、 「')'がありません」とスクリプトエラーになってしまいます。 いろいろコメント化したりして切り分けたところ、以下の何かが いけないようです。 「)」がないといわれても、以下のいったい何がいけないのか見当もつかないですが、 お心当たりのアドバイスがありましたら是非お願いします。 function nmck01() { var str = document.query.capacity_more.value; if( str.match( /[^0-9.]+/ ) ) { alert("不正な値がみつかりました。\n正数以外は入力できません。"); return 1; } return 0; }

みんなの回答

noname#185101
noname#185101
回答No.1

質問者です。自己レスです。 jsファイルがShift_JISになってたのが原因でした(今回はEUCでサイトを作成) 日本語のコメントが文字化けして括弧みたいに解釈されたと推察します。 流用したファイルがShift_JISだったこと、EUCをめったに使わないことから 完全に盲点でした。 大変お騒がせしました。

関連するQ&A

  • parseとtoStringの違い

    javascriptを勉強中です。 基本的な事かもしれませんが識者の方、宜しくお願いします。 以下のようなスクリプトで parseの部分をtoStringにすることで何が違ってくるのでしょうか? データの型?が違うのでしょうか? 御存じの方がいましたらご教授下さい。 function totest(str){ this.str = "abcdefg"; this.str += str; return this.str; } function test1(str){ this.str = str; this.parse = totest } var str = "aaa”; var p1 = new test1(str); alert(p1.str); alert(p1.parse(str));

  • 検索フォームの入力値のチェック

    以下は、いくつもある検索フォームの中のテキストボックスの一つです。 ここに、次のエラーチェックを仕込みたいのですが。 (1) 17で始まる8桁数字以外はアラートを出す。NULLもダメ。 (2) 半角数字以外が入力されたときは、フォーカスが離れた時アラートを表示NULLはOK。 (3) ここに示していないその他のフォームを含め、一個でも上記エラーがあったら   検索ボタン押下時にアラートを出し、POSTを許可しない。 いろいろエラーになったり、(1) ができてなかったりで、すみませんが 完璧にするためのアドバイスいただけないでしょうか。IE6オンリーで十分です。 <html> <head> <script type="text/javascript"> function NullCheck() { if ( document.query.numberform.value=="" ) { alert( "必ず17で始まる半角数字8桁で指定してください。\n例:17910031" ); return 1; } return false; } function NumbCheck() { var str = document.query.numberform.value; if( str.match( /[^0-9]+/ ) ) { alert("不正な値がみつかりました。"); return 1; } return 0; } /* 全部チェック */ function AllCheck() { var check = 0; check += NullCheck01(); check += nmck09(); if( check > 0 ) { return false; } return check; } </script> </head> <body> <form method="post" action="list.php" target="list" id="query" name="query"> <input value="17000000" size="10" type="text" name="numberform" onblur="NumbCheck();NullCheck();">から <input type="submit" name="exec" value="検索" onclick="return AllCheck();"> </form> </body> </html>

  • ピリオド区切りで 4桁.2桁.2桁 という制限が出来なくて困っています

    ピリオド区切りで 4桁.2桁.2桁 という制限が出来なくて困っています。 テキストボックスに入力される文字列の形式を制限するために、Web上で見つけたサンプルソースを参考に、次のような形でJavascriptを挿入しました。 <script type="text/javascript"> /* ピリオドチェック */ function DotCheck() { var str = document.form01.yukoduki.value; if( str.indexOf( "." ) != 4) { alert("1234.56.78 のように、ピリオド2つで区切ってご記入下さい"); document.form01.kakuninbutton.disabled = true; // 送信ボタン無効化; return 1; } return 0; } /* 2つめのピリオドチェック */ function DotCheck() { var str = document.form01.yukoduki.value; if( str.indexOf( "." ) != 6) { alert("1234.56.78 のように、ピリオド2つで区切ってご記入下さい"); document.form01.kakuninbutton.disabled = true; // 送信ボタン無効化; return 1; } return 0; } /* 半角数字チェック */ function NumberCheck() { var str = document.form01.yukoduki.value; if( str.match( /[^0-9\s.]+/ ) ) { alert("半角数字と小数点のみで入力して下さい。"); document.form01.kakuninbutton.disabled = true; // 送信ボタン無効化; return 1; } return 0; } /* 全部チェック */ function AllCheck() { var check = 0; check += NumberCheck(); check += DotCheck(); check += DotDotCheck(T); if( check > 0 ) { return false; } return true; } </script> しかし、これだと、123.456.78 のように最初のピリオドまでと2つ目のピリオドまでの桁数は制限できますが、最後の桁は何桁でも入れ放題になってしまいます。 そこで、ピリオドのチェックを2つ入れるかわりに、まとめて桁数をチェックしようと次のようなソースをソースを考えたのですが、どうも私の知識不足で間違っているようで作動しません。 /*一括ピリオドチェック */ function DotDotCheck(T) { var str = document.form01.yukoduki.value; if( !str.match(/^?d(4).?d(2).?d(2)$/)) { alert("1234.56.78 のように、ピリオド区切りで4桁.2桁.2桁でご記入下さい"); document.form01.kakuninbutton.disabled = true; // 送信ボタン無効化; return 1; } return 0; } このソース、少し直すだけで、「ピリオド区切りで4桁.2桁.2桁になっていない場合はアラート」という目的を達成できないでしょうか? 直し方をお分かりの方がいらっしゃいましたらご教示頂きたく、どうかよろしくお願い致します。

  • javaScriptで文字数制限

    フォームを作成していまして、alert指定を行っているのですが、一部半角数字も3桁設定ができなくて困っております。 数字は 100~999 までです。 下記のような記述となります。 どなたか 教えて下さい。宜しくお願い致します。 function WriterCheck() { var str = document.dataInputForm.no.value; if( str.match( /[^0-9]+/ ) ) { alert("ナンバーは半角数字3桁のみで入力して下さい。"); return false; } return true; }

  • -(ハイフン)_(アンダーバー)の先頭や末尾での使用不可にする正規表現の書き方

    JavaScriptの(正確にはJavaScriptのみというわけでは無く、どの言語にもいえることなのですが、)正規表現を使って、以下のような書き方を不許可にしたいのですが、なかなかうまくいきません。 絶対条件は、英数字のみです。 禁止にしたい:-hoge、hoge-、_hoge、hoge_ しかし、これはOK:ho-ge、ho_geなどなど........ ようするに、先頭末尾に-(ハイフン)_(アンダーバー)の使用を禁止にしたいのです。 但し以下の場合に使わなければなりません。 function check( str ) { if( str.match(/ここに制御文/) ) return false; else return true; } ↑ みたいな関数があって、下記のような処理をほどこしています。 if( !check( str ) ){ alert( strMsg ); return false; } わかりづらい内容かもしてませんが、 どなたご教授いただけば幸いです。 宜しくお願いいたします。

  • JA

    PERLの中にJAVESCRIPTがあり、PERLの共通変数を呼びたい。どうしたらよいですか?${STR_CHANGEPASSWD_CHEC}と${STR_HALF_WIDTH_CHECK};を読みたい。 <script type="text/javascript" language="JavaScript"> <!-- function input_check(){ var num = document.f1.pwd_man.value; if (num != "") { if(!isNaN(num)){ alert(" . ${STR_HALF_WIDTH_CHECK}; . "); return; } } if(! confirm(" . ${STR_CHANGEPASSWD_CHEC} . ")){return;} move(); } //--> </script>

  • JS 親functionのフィールドを参照したい

    ボタンをクリックすると、任意の文字がalertで表示されるHTMLを生成するプログラムをJavaScriptで(JQueryを使用しています)書いています。 イメージは、 <button onclick='alert(任意の文字列)'>CLICK ME!</button> のようなHTMLです。 JavaScript部分は以下です。 var ButtonMaker = function(msg){    this.msg = msg; } ButtonMaker.prototype = {    getButton: function(){       var button = $('<button>').text('CLICK ME!');       button.click(this.eventMaker());       return button;    },        eventMaker: function(){       var that = this; // ←これをしたくありません       return function(){          alert(that.msg);       }    } } // 以下のようにして使います var bmaker = new ButtonMaker('This is a message.'); $(document.body).append(bmaker.getButton()); 上記のコードを実行すれば、自分の思い通りの動きになります。ですが、eventMaker()メソッドが気に入りません。var that = thisをしたあと、that.msgなどとして参照しないといけないのが嫌です。 また、以下のコードのようにeventMaker()にmsgを引数に渡すのもあまりしたくありません。なぜなら、実際はButtonMakerのフィールドがもっとたくさんあり、それらのいくつかを参照するからです。 eventMaker2: function(msg){   return function(){     alert(msg);   } } よろしくお願いします

  • RegExpでカンマの判定で疑問があります。

    下記のようなjavascriptで入力チェックを考えています。 だいたい意図通りに動くのですが、「,」を入力した場合、想定はfalseなのですが、trueになってしまいます。 何か見落としがあるのでしょうか。また理由がわからないため、下記に指定していないのに意図せずにtrueになる文字がないか心配です。 どなたかアドバイスを頂けないでしょうか。 ※ いまはカンマだけ個別に比較して対応しています。 function test() { var str = sample8.input1.value; var check = new RegExp("[ !\"#$%&'()*+-./1023456789:;<=>?@ABCDEFGHIJKLMNOPQRSTUVWXYZ_abcdefghijklmnopqrstuvwxyz|~アイウエオカキクケコサシスセソタチツテトナニヌネノハヒフヘホマミムメモヤユヨラリルレロワヲンァィゥェォャュョッー゛゜。「」、・]"); if (str.match(check)) { alert("true"); } else { alert("false"); } }

  • ASPの中のJavaScriptについて

    会社のASPプログラムの中で利用しているJavaScriptなんですが、 分からない部分があるので教えていただけないしょうか? var cForm = document.ImportItem;とあるのですが、ImportItemというのは、なんなんでしょうか? オブジェクト+ImportItemということはメソッドということになるのでしょうか? それともどこかで宣言させている何かでしょうか? これだけでは分からないと思いますが宜しくお願いします。 ItemCSVも同じようにメソッドなんでしょうか? function CheckForm(flg) { if (flg == 1 || flg == 2) { var cForm = document.ImportItem; if (cForm.ItemCSV.value != "") { var str = cForm.ItemCSV.value; var len = str.length; str = str.toLowerCase(); var pos1 = str.lastIndexOf(".csv"); if ((pos1 + 4 != len)) { alert("ファイルは[csv]を選択して下さい"); cForm.ItemCSV.focus(); return false; } }else{ alert("ファイルは[csv]を選択して下さい"); cForm.ItemCSV.focus(); return false; } } with (document.ImportItem) { action = "SubmitImportItem.asp?Flag=" + flg; submit(); } }

  • javascriptのレキシカルスコープについて

    JSのレキシカルスコープがわかりません。 JSだと、一番外側のスコープで var str = "一番外側のスコープ"; とすると それ以降、ユーザー定義関数の中の、いわゆる関数スコープ内でも var str; と関数内で再定義しない限り、str = "一番外側のスコープ";を つかいまわすことになりますよね? 一度、関数内で、値を変更すると親スコープでもその変更が生きたままになると思います。 var str ="一番外側のスコープ"; function test(){ alert(str); str ="値の変更"; } alert(str) // 関数内で値をかえたけど、それが親スコープにも反映されてしまう。 このことがレキシカルスコープでしょうか? ただ、どこかのサイトで var num = 100; function makefunc() { return function() { alert(num); } } function callfunc() { var num = 50; var func = makefunc(); func(); }; callfunc(); でmakefunc()関数を呼び出した際の 関数内のnumという変数の値が100になるというのです。 実際、実行するとその通りなのですが、 var num = 50; という宣言は、callfunc() という関数の関数スコープ(ローカルスコープ) というのは理解しています。 でその中のいわゆる内部関数というのでしょうか? var func = makefunc(); func(); を実行した際の 変数numというスコープが 一番最初に宣言した  var num = 100; という値をさすというのです。(※そのサイトではこれをレキシカルスコープと呼んでいました) いったどういう動作がレキシカルスコープなのでしょうか? 他にも、クロージャともごっちゃになっております。 識者の方ご教授ください。 参考元はここです http://garden-place.jp/tech/javascript/scope-chain.html