2017-09-23 16 views
-3

Imはコーディングに新しいので、最後の行でjavascriptエラーを受け取った人は誰でもこの手伝いできますか?ファイルが縮小されました。ここでははるかに高く評価Uncaught SyntaxError:予期せぬ識別子 - Javascript

; 
jQuery(document).ready(function() { 
    String.prototype.filename = function(extension) { 
     var s = this.replace(/\\/g, '/'); 
     s = s.substring(s.lastIndexOf('/') + 1); 
     return extension ? s.replace(/[?#].+$/, '') : s.split('.')[0]; 
    } 
    jQuery("img").each(function() { 
     var alt = jQuery(this).attr('alt'); 
     if (alt === "") { 
      var namefile = jQuery(this).attr('src').filename(); 
      var rep = namefile.replace(/[_#?%*[email protected]!=&]/g, '-'); 
      var temp = rep.split('-'); 
      var alt = ''; 
      for (i = 0; i < temp.length; i++) { 
       alt = alt + ' ' + temp[i]; 
      } 
      jQuery(this).attr('alt', alt); 
     } 
     if (alt === undefined) { 
      var namefile = jQuery(this).attr('src').filename(); 
      var rep = namefile.replace(/[_#?%*[email protected]!=]/g, '-'); 
      var temp = rep.split('-'); 
      var alt = ''; 
      for (i = 0; i < temp.length; i++) { 
       alt = alt + ' ' + temp[i]; 
      } 
      jQuery(this).attr('alt', alt); 
     } 
    }); 
}); 
+1

エラーとは何ですか?そして、どのように問題をデバッグしましたか? – FluffyKitten

答えて

1

あなたのコードはunminifiedです:

; 
jQuery(document).ready(function() { 
    String.prototype.filename = function(extension) { 
     var s = this.replace(/\\/g, '/'); 
     s = s.substring(s.lastIndexOf('/') + 1); 
     return extension ? s.replace(/[?#].+$/, '') : s.split('.')[0]; 
    } 
    jQuery("img").each(function() { 
     var alt = jQuery(this).attr('alt'); 
     if (alt === "") { 
      var namefile = jQuery(this).attr('src').filename(); 
      var rep = namefile.replace(/[_#?%*[email protected]!=&]/g, '-'); 
      var temp = rep.split('-'); 
      var alt = ''; 
      for (i = 0; i < temp.length; i++) { 
       alt = alt + ' ' + temp[i]; 
      } 
      jQuery(this).attr('alt', alt); 
     } 
     if (alt === undefined) { 
      var namefile = jQuery(this).attr('src').filename(); 
      var rep = namefile.replace(/[_#?%*[email protected]!=]/g, '-'); 
      var temp = rep.split('-'); 
      var alt = ''; 
      for (i = 0; i < temp.length; i++) { 
       alt = alt + ' ' + temp[i]; 
      } 
      jQuery(this).attr('alt', alt); 
     } 
    }); 
}); 

あなたは7行に欠け;が閉じ括弧の後に、そこにあることがわかります。

固定されていないコードがあります。

; 
jQuery(document).ready(function() { 
    String.prototype.filename = function(extension) { 
     var s = this.replace(/\\/g, '/'); 
     s = s.substring(s.lastIndexOf('/') + 1); 
     return extension ? s.replace(/[?#].+$/, '') : s.split('.')[0]; 
    }; 
    jQuery("img").each(function() { 
     var alt = jQuery(this).attr('alt'); 
     if (alt === "") { 
      var namefile = jQuery(this).attr('src').filename(); 
      var rep = namefile.replace(/[_#?%*[email protected]!=&]/g, '-'); 
      var temp = rep.split('-'); 
      var alt = ''; 
      for (i = 0; i < temp.length; i++) { 
       alt = alt + ' ' + temp[i]; 
      } 
      jQuery(this).attr('alt', alt); 
     } 
     if (alt === undefined) { 
      var namefile = jQuery(this).attr('src').filename(); 
      var rep = namefile.replace(/[_#?%*[email protected]!=]/g, '-'); 
      var temp = rep.split('-'); 
      var alt = ''; 
      for (i = 0; i < temp.length; i++) { 
       alt = alt + ' ' + temp[i]; 
      } 
      jQuery(this).attr('alt', alt); 
     } 
    }); 
}); 

固定された縮小コード。

;jQuery(document).ready(function() { String.prototype.filename=function(extension){ var s= this.replace(/\\/g, '/'); s= s.substring(s.lastIndexOf('/')+ 1); return extension? s.replace(/[?#].+$/, ''): s.split('.')[0]; }; jQuery("img").each(function() { var alt = jQuery(this).attr('alt'); if(alt === ""){ var namefile = jQuery(this).attr('src').filename(); var rep = namefile.replace(/[_#?%*[email protected]!=&]/g,'-'); var temp = rep.split('-'); var alt =''; for (i = 0; i < temp.length; i++) { alt = alt+' '+temp[i]; } jQuery(this).attr('alt',alt); } if(alt === undefined){ var namefile = jQuery(this).attr('src').filename(); var rep = namefile.replace(/[_#?%*[email protected]!=]/g,'-'); var temp = rep.split('-'); var alt =''; for (i = 0; i < temp.length; i++) { alt = alt+' '+temp[i]; } jQuery(this).attr('alt',alt); } }); }); 
-1

正規表現のバックスラッシュをエスケープする必要があります。

this.replace(/\/g, '/'); // wrong 
this.replace(/\\/g, '/'); // right 
+0

バックスラッシュは元の投稿でエスケープされました([元のソース](https://stackoverflow.com/revisions/b62a1d99-dba5-4a23-af5e-dcc93fa06716/view-source)参照))。 @ guest271314の編集で削除されました。 –

+0

@JackWilsdon:ソースを見る方法を知っていましたか?元の質問では、ページにレンダリングされたときにエスケープが表示されません。 https://stackoverflow.com/revisions/46384077/1ソースビューのみがそれを明らかにします。 – llama

+0

コードをコードブロックに入れるために投稿を編集していましたが、最初に質問を見たときにコピーしました。レンダリングされたバージョンで見つからなかったことに気付きました。 –

関連する問題