1/** 2 * email-normalize.js â ã¡ã¼ã«å ¥åæ¬ã®ç©ºç½é¤å»ï¼å ¨ãã©ã¼ã å ±éï¼ 3 * 4 * èæ¯: 5 * ã¢ãã¤ã«ã®ã¡ã¼ã«åè£ï¼ãµã¸ã§ã¹ãï¼ãã¿ãããã¦å ¥åããã¨ãæ«å°¾ã¹ãã¼ã¹ã 6 * éæ¹è¡ã¹ãã¼ã¹(U+00A0)ã»å ¨è§ã¹ãã¼ã¹(U+3000)ãæ··å ¥ãããã¨ãããã 7 * CF7 6.x ã®ã¯ã©ã¤ã¢ã³ãå´æ¤è¨¼(SWV)ã type="email" ã®ãã¤ãã£ãæ¤è¨¼ã¯ 8 * åå¾ã»éä¸ã®ç©ºç½ã許容ããï¼ãã¤ã¯ã©ã¤ã¢ã³ãå´ã¯ trim ããªãï¼ããã®å ´ã§å¼¾ãã 9 * æå ¥åã¯ã¯ãªã¼ã³ãªå¤ãªã®ã§éããã¨ããå·®ã«ãªã£ã¦ããã 10 * 11 * æ¹é: 12 * ã¡ã¼ã«ã¢ãã¬ã¹ã«ç©ºç½ã¯å«ã¾ããªããããinput[type="email"] ã®å¤ãã 13 * ãã¹ã¦ã®ç©ºç½æåãé¤å»ãã¦æ£è¦åãããCF7ã»ãã¤ãã£ãæ¤è¨¼ã®æåã§å¤ã 14 * ãããã«ããéä¿¡ãã¼ã¿ã«ã空ç½ãæ®ããªãã 15 * 16 * 対象: 17 * nh_is_form_page_2026()ï¼ç·åãåãåããï¼è³æè«æ±ï¼æ¡ç¨å¿åï¼æ¥å ´äºç´ï¼ã§èªã¿è¾¼ãã 18 * å ¥åéä¸ã¯éªéããªããã blur / paste / submit ã®æã ãæ£è¦åããã 19 */ 20(function () { 21 'use strict'; 22 23 var WS = /[\sã ]/g; // åè§/æ¹è¡/ã¿ã + å ¨è§ã¹ãã¼ã¹ + NBSP 24 25 function normalize(el) { 26 if (!el || typeof el.value !== 'string') return; 27 var cleaned = el.value.replace(WS, ''); 28 if (cleaned !== el.value) { 29 el.value = cleaned; 30 // éä¿¡ãã¿ã³ã®æ´»æ§å¤å®ï¼form-2026.jsï¼ã CF7 ã®ç¶æ ãæ´æ° 31 el.dispatchEvent(new Event('input', { bubbles: true })); 32 el.dispatchEvent(new Event('change', { bubbles: true })); 33 } 34 } 35 36 function bind(el) { 37 el.addEventListener('blur', function () { normalize(el); }); 38 // è²¼ãä»ãã¯ç¢ºå®å¾ã«å¦ç 39 el.addEventListener('paste', function () { 40 window.setTimeout(function () { normalize(el); }, 0); 41 }); 42 } 43 44 function init() { 45 var emails = document.querySelectorAll('input[type="email"]'); 46 for (var i = 0; i < emails.length; i++) { 47 bind(emails[i]); 48 } 49 // éä¿¡ç´åã«ã念ã®ããæ£è¦åï¼blur ãçµãã«éä¿¡ãããã±ã¼ã¹ã®ä¿éºï¼ã 50 // capture ãã§ã¼ãºã§ CF7 ã®ãã³ãã©ããå ã«èµ°ãããã 51 var forms = document.querySelectorAll('form'); 52 for (var j = 0; j < forms.length; j++) { 53 forms[j].addEventListener('submit', function (e) { 54 var list = e.currentTarget.querySelectorAll('input[type="email"]'); 55 for (var k = 0; k < list.length; k++) { normalize(list[k]); } 56 }, true); 57 } 58 } 59 60 if (document.readyState === 'loading') { 61 document.addEventListener('DOMContentLoaded', init); 62 } else { 63 init(); 64 } 65})();
Line numbers count LF bytes from the start of the resource, as the search results do. Vendor segments are library code the classifier recognised; they are stored but not indexed. Bytes are shown as Latin1 characters, one per byte.