xssUtils.js 1.3 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748
  1. var xssUtil = {
  2. /**
  3. * 将url中的html字符转义, 仅转义 ', ", <, > 四个字符
  4. * @param { String } str 需要转义的字符串
  5. * @param { RegExp } reg 自定义的正则
  6. * @return { String } 转义后的字符串
  7. */
  8. unhtmlForUrl: function (str, reg) {
  9. return str ? str.replace(reg || /[<">']/g, function (a) {
  10. return {
  11. '<': '&lt;',
  12. '&': '&amp;',
  13. '"': '&quot;',
  14. '>': '&gt;',
  15. "'": '&#39;'
  16. }[a]
  17. }) : '';
  18. },
  19. /**
  20. * 将str中的转义字符还原成html字符
  21. * @see UE.utils.unhtml(String);
  22. * @method html
  23. * @param { String } str 需要逆转义的字符串
  24. * @return { String } 逆转义后的字符串
  25. * @example
  26. * ```javascript
  27. *
  28. * var str = '&lt;body&gt;&amp;&lt;/body&gt;';
  29. *
  30. * //output: <body>&</body>
  31. * console.log( UE.utils.html( str ) );
  32. *
  33. * ```
  34. */
  35. html: function (str) {
  36. return str ? str.replace(/&((g|l|quo)t|amp|#39|nbsp);/g, function (m) {
  37. return {
  38. '&lt;': '<',
  39. '&amp;': '&',
  40. '&quot;': '"',
  41. '&gt;': '>',
  42. '&#39;': "'",
  43. '&nbsp;': ' '
  44. }[m]
  45. }) : '';
  46. }
  47. }