Chrome キャッチされない構文エラー: 予期しないトークン ILLEGAL [重複] 質問する

Chrome キャッチされない構文エラー: 予期しないトークン ILLEGAL [重複] 質問する

Chrome がページにスクリプト ファイルを読み込もうとすると、件名のエラーが発生します。JavaScript ファイルの最後の行にあると表示されます。問題は見つかりません。Firefox ではエラーは発生せず、スクリプトは期待どおりに動作します。フォーム検証を使用しているだけです。

// JavaScript Document
$(function() {
  $('#wm-form').submit(function() {
    var errors = false;
    var errorMsg = "";
    $('.required').each(function() {
      if(!validField($(this))) {
        errorMsg += $(this).attr('name').capitalize() + " cannot be blank\n";
        errors = true;
      }
    });
    var emailAddress = $('#email');
    if(isValid(emailAddress) && !(/^(([a-zA-Z0-9_\-\.]+)@([a-zA-Z0-9_\-\.]+)\.([a-zA-Z]{2,5}){1,25})+([;.](([a-zA-Z0-9_\-\.]+)@([a-zA-Z0-9_\-\.]+)\.([a-zA-Z]{2,5}){1,25})+)*$/.test(emailAddress.val()))) {
      errorMsg += "Not a valid email address. Please enter in a correctly formatted email address";
      errors = true;
    }
    if(errors) {
      alert(errorMsg);
      return false;
    }
  });

  $('.form-focus').click(function() {
    $(document).scrollTop(0);
    $('#first_name').focus();
    return false;
  });
});

function validField(element) {
  if(!isValid(element.val()) || (element.attr('placeholder') && element.attr('placeholder') == element.val()) || 
    (element.attr('type') == 'radio' && !checkedRadio(element))) {
    return false;
  }
  else {
    return true;
  }
}

function isValid(ele) {
  if(ele == null || ele == '') {
    return false;
  }
  else {
    return true;
  }
}

String.prototype.capitalize = function() {
    return this.charAt(0).toUpperCase() + this.slice(1);
};

function checkedRadio (element) {
  var valid = false;
  $('input[name="'+ element.attr("name") +'"]:checked').each(function() {
    valid = true;
  });

  return valid;
}​

ベストアンサー1

そのソースの最後には、何らかの不正な文字があります。最後の行を削除して、再度追加してみてください。

まだそこに何があるのか​​正確には分かりませんが...

編集— ゼロ幅スペース、Unicode 200B だと思います。かなり奇妙に思えますし、もちろん Stackoverflow のアーティファクトではないと確信することはできませんが、最後の行全体を含む最後の関数を Chrome コンソールにコピー/貼り付けすると、エラーが発生します。

このような文字の悪名高いソースは、次のようなウェブサイトです。jsfiddleこれらに何か問題があると言っているわけではありません。これは単に、コンテンツ編集可能な入力ウィジェットの使用による副作用である可能性があります。

もしあなたがこの病気にかかっていると疑っていて、MacOS または Linux/Unix を使用している場合、odコマンドラインツールはソースコードファイルの文字の数値を (かなり見苦しい方法ではありますが) 表示することができます。一部の IDE やエディタは「おかしな」文字も表示します。そのような文字はいつも問題です。たとえば、文字列定数に埋め込まれた Unicode 文字があってもまったく問題ありません (少なくとも、ほとんどの適切なプログラミング言語では)。問題は、言語パーサーが予期しない文字に遭遇したときに発生し始めます。

おすすめ記事