1. ホーム
  2. javascript

[解決済み] Chrome Uncaught Syntax Error: 予期しないトークン ILLEGAL [重複]。

2022-05-27 06:19:51

質問

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;
}​

どのように解決するのですか?

そのソースの最後には、何らかのインチキ文字があります。 最後の行を削除して、また追加してみてください。

何があるのか、まだ正確に把握できていないのですが.

編集 - ゼロ幅のスペース、ユニコード200Bだと思います。 かなり奇妙に思えるし、Stackoverflow のアーティファクトでないことはもちろん確認できませんが、最後の行を完全に含むその最後の関数を Chrome コンソールにコピー/ペーストすると、あなたのエラーが表示されます。

このような文字の悪名高いソースは、次のような Web サイトです。 jsfiddle . コンテンツ編集可能な入力ウィジェットの使用など、何かの副次的な効果に過ぎません。

この病気にかかったと思われる場合、MacOS または Linux/Unix を使用している場合は od コマンド ライン ツールを使用すると、ソース コード ファイルの文字に含まれる数値を (かなり醜い方法ではありますが) 表示することができます。IDEやエディタによっては、"funny"文字も表示することができます。ただし、そのような文字は 常に 問題であることに注意してください。例えば、文字列定数の中に Unicode 文字が埋め込まれていても、(ほとんどの妥当なプログラミング言語では)まったく問題ありません。問題は、言語パーサーが予期しない文字に遭遇したときに発生し始めます。