2017-10-25 16 views
0

私のhtmlテキストボックスにはスペースの代わりに があります。 私は文字列が、それはスペースや文字列が 文字列がエンコードされているかどうかを確認するjavascript

に本当の文字列の場合、私は確認することができ、私はこれを試してみましたが、運

Var isItaString = isEncoded(‘ &nbsp’) 
function isEncoded(str) { 
    return typeof str == "string" && decodeURIComponent(str) !== str; 
} 
+0

[ ](https://www.w3schools.com/html/html_entities.asp)は空白ではなく、[RegexOne - 正規表現の学習 - レッスン1:はじめに、ABC](https: //www.regexone.com/)代わりに;) – eapo

答えて

1
どう  である場合、すなわち、符号化されているかどうかをチェックしようとしています

これはテキストエンコーディングではなく、HTMLエンティティへの変換です。

HTMLエンティティが存在するかどうかを確認する必要があります。このような単語の完全なリストは次のとおりです。

["&nbsp","&iexcl","&cent","&pound","&curren","&yen","&brvbar","&sect","&uml","&copy","&ordf","&laquo","&not","&reg","&macr","&deg","&plusmn","&sup2","&sup3","&acute","&micro","&para","&middot","&cedil","&sup1","&ordm","&raquo","&frac14","&frac12","&frac34","&iquest","&Agrave","&Aacute","&Acirc","&Atilde","&Auml","&Aring","&AElig","&Ccedil","&Egrave","&Eacute","&Ecirc","&Euml","&Igrave","&Iacute","&Icirc","&Iuml","&ETH","&Ntilde","&Ograve","&Oacute","&Ocirc","&Otilde","&Ouml","&times","&Oslash","&Ugrave","&Uacute","&Ucirc","&Uuml","&Yacute","&THORN","&szlig","&agrave","&aacute","&acirc","&atilde","&auml","&aring","&aelig","&ccedil","&egrave","&eacute","&ecirc","&euml","&igrave","&iacute","&icirc","&iuml","&eth","&ntilde","&ograve","&oacute","&ocirc","&otilde","&ouml","&divide","&oslash","&ugrave","&uacute","&ucirc","&uuml","&yacute","&thorn","&yuml","&fnof","&Alpha","&Beta","&Gamma","&Delta","&Epsilon","&Zeta","&Eta","&Theta","&Iota","&Kappa","&Lambda","&Mu","&Nu","&Xi","&Omicron","&Pi","&Rho","&Sigma","&Tau","&Upsilon","&Phi","&Chi","&Psi","&Omega","&alpha","&beta","&gamma","&delta","&epsilon","&zeta","&eta","&theta","&iota","&kappa","&lambda","&mu","&nu","&xi","&omicron","&pi","&rho","&sigmaf","&sigma","&tau","&upsilon","&phi","&chi","&psi","&omega","&thetasym","&upsih","&piv","&bull","&hellip","&prime","&Prime","&oline","&frasl","&weierp","&image","&real","&trade","&alefsym","&larr","&uarr","&rarr","&darr","&harr","&crarr","&lArr","&uArr","&rArr","&dArr","&hArr","&forall","&part","&exist","&empty","&nabla","&isin","&notin","&ni","&prod","&sum","&minus","&lowast","&radic","&prop","&infin","&ang","&and","&or","&cap","&cup","&int","&there4","&sim","&cong","&asymp","&ne","&equiv","&le","&ge","&sub","&sup","&nsub","&sube","&supe","&oplus","&otimes","&perp","&sdot","&lceil","&rceil","&lfloor","&rfloor","&lang","&rang","&loz","&spades","&clubs","&hearts","&diams","&\"","&amp","&lt","&gt","&OElig","&oelig","&Scaron","&scaron","&Yuml","&circ","&tilde","&ndash","&mdash","&lsquo","&rsquo","&sbquo","&ldquo","&rdquo","&bdquo","&dagger","&Dagger","&permil","&lsaquo","&rsaquo","&euro"] 

文字列で正規表現の検索を実行しても問題ありません。

0

回答の助けを借りて、私はそれらがhtmlエンティティで正規表現を必要としていることを知りました。

var decodeEntities = (function decodeEntities() { 
      var element = document.createElement('div'); 

      function decodeHTMLEntities(str) { 
       if (str && typeof str === 'string') { 
        str = str.replace(/<script[^>]*>([\S\s]*?)<\/script>/gmi, ''); 
        str = str.replace(/<\/?\w(?:[^"'>]|"[^"]*"|'[^']*')*>/gmi, ''); 
        element.innerHTML = str; 
        str = element.textContent; 
        element.textContent = ''; 
       } 

       return str; 
      } 

      return decodeHTMLEntities; 
     })(); 

誰かがこのコードを単一の関数に変換すると他の人に役立つでしょう。

関連する問題