compliance.js 3.4 KB

1234567891011121314151617181920212223242526272829303132333435363738394041424344454647484950515253545556575859606162636465666768697071727374757677787980818283848586878889
  1. var REPLACE_RULES = [
  2. ['\u7981\u5fcc\uff1a\u4e0d\u8981\u5728\u98df\u7528\u6709\u8272\u996e\u98df\u6216\u836f\u7269\u540e', '注意:不要在食用有色饮食或保健品后'],
  3. ['\u7528\u4e8e\u62cd\u6444\u820c\u8c61/\u9762\u90e8\u7167\u7247\u4ee5\u8fdb\u884c\u4e2d\u533b\u8bca\u65ad', '用于拍摄舌象/面部照片以进行AI健康分析'],
  4. ['\u672c\u529f\u80fd\u4f7f\u7528\u4eba\u5de5\u667a\u80fd\u6280\u672f\u5bf9\u60a8\u63d0\u4f9b\u7684\u820c\u8c61\u3001\u9762\u8c61\u53ca\u95ee\u8bca\u4fe1\u606f', '本功能使用人工智能技术对您提供的舌象、面象及健康问答信息'],
  5. ['\u4e0d\u80fd\u66ff\u4ee3\u4e13\u4e1a\u533b\u751f\u7684\u8bca\u65ad', '不能替代专业健康顾问的建议'],
  6. ['\u54a8\u8be2\u4e13\u4e1a\u533b\u7597\u673a\u6784\u548c\u533b\u751f', '咨询专业健康顾问'],
  7. ['\u524d\u5f80\u6b63\u89c4\u533b\u7597\u673a\u6784\u5c31\u8bca', '前往正规健康机构咨询'],
  8. ['\u533b\u7597\u8bca\u65ad\u6216\u6cbb\u7597\u5efa\u8bae', '专业建议'],
  9. ['\u4e0d\u6784\u6210\u4efb\u4f55\u533b\u7597\u8bca\u65ad\u6216\u6cbb\u7597\u5efa\u8bae', '仅供参考,不构成专业建议'],
  10. ['AI\u5065\u5eb7\u5206\u6790\u77e5\u60c5\u540c\u610f', 'AI健康评估知情同意'],
  11. ['AI\u820c\u8bca\u00b7\u95ee\u8bca', 'AI健康评估'],
  12. ['\u4e2d\u533b\u8bca\u7597', 'AI健康评估'],
  13. ['\u4e2d\u533b\u8bca\u65ad', 'AI健康分析'],
  14. ['\u533b\u7597\u8bca\u65ad', '健康分析'],
  15. ['\u6cbb\u7597\u5efa\u8bae', '专业建议'],
  16. ['\u671b\u8bca\u5206\u6790', '图片分析'],
  17. ['\u671b\u8bca\u56fe\u7247', '图片分析'],
  18. ['\u8bca\u65ad\u7ed3\u679c', '分析报告'],
  19. ['\u8bca\u65ad\u8bb0\u5f55', '评估记录'],
  20. ['\u8bca\u65ad\u7528\u8bed', '分析内容'],
  21. ['\u8bca\u7597\u8bb0\u5f55', '评估记录'],
  22. ['\u8bca\u7597\u65f6\u95f4', '评估时间'],
  23. ['\u820c\u8bca', '舌头分析'],
  24. ['\u9762\u8bca', '面部分析'],
  25. ['\u95ee\u8bca', '健康问答'],
  26. ['\u671b\u8bca', '图片分析'],
  27. ['\u8bca\u7597', '评估'],
  28. ['\u8bca\u65ad', '分析'],
  29. ['\u836f\u7269', '保健品'],
  30. ['\u7981\u5fcc', '注意'],
  31. ['\u533b\u62a4\u4eba\u5458', '健康护理人员']
  32. ]
  33. var GENERAL_RULES = [
  34. ['\u5904\u65b9', '建议'],
  35. ['\u786e\u8bca', '分析'],
  36. ['\u6cbb\u6108', '改善'],
  37. ['\u6cbb\u7597', '调理'],
  38. ['\u5c31\u8bca', '咨询'],
  39. ['\u533b\u751f', '健康顾问'],
  40. ['\u533b\u7597', '健康'],
  41. ['\u75be\u75c5', '健康状态'],
  42. ['\u75c5\u75c7', '状态'],
  43. ['\u75c7\u72b6', '状态'],
  44. ['\u60a3\u8005', '用户'],
  45. ['\u75c5\u4eba', '用户'],
  46. ['\u7528\u836f', '保养'],
  47. ['\u7597\u6548', '效果'],
  48. ['\u533b\u9662', '健康机构']
  49. ]
  50. function sanitizeText(value) {
  51. if (value === undefined || value === null) {
  52. return value
  53. }
  54. var text = String(value)
  55. for (var i = 0; i < REPLACE_RULES.length; i++) {
  56. text = text.split(REPLACE_RULES[i][0]).join(REPLACE_RULES[i][1])
  57. }
  58. for (var j = 0; j < GENERAL_RULES.length; j++) {
  59. text = text.split(GENERAL_RULES[j][0]).join(GENERAL_RULES[j][1])
  60. }
  61. return text
  62. }
  63. function sanitizeValue(value) {
  64. if (typeof value === 'string' || typeof value === 'number') {
  65. return sanitizeText(value)
  66. }
  67. if (Array.isArray(value)) {
  68. return value.map(function (item) {
  69. return sanitizeValue(item)
  70. })
  71. }
  72. if (value && typeof value === 'object') {
  73. var next = {}
  74. for (var key in value) {
  75. next[key] = sanitizeValue(value[key])
  76. }
  77. return next
  78. }
  79. return value
  80. }
  81. module.exports = {
  82. sanitizeText: sanitizeText,
  83. sanitizeValue: sanitizeValue
  84. }