(str)
| 228 | |
| 229 | // 格式化字符串值,如果是URL则转换为链接 |
| 230 | function formatStringValue(str) { |
| 231 | // URL正则表达式,匹配 http/https/ftp 协议的URL |
| 232 | const urlRegex = /^(https?:\/\/|ftp:\/\/)[^\s<>"'\\]+$/i; |
| 233 | |
| 234 | if (urlRegex.test(str)) { |
| 235 | // 如果是URL,转换为链接 |
| 236 | const escapedUrl = htmlspecialchars(str); |
| 237 | return '<a href="' + escapedUrl + '" target="_blank" rel="noopener noreferrer" data-is-link="1" data-link-url="' + escapedUrl + '">' + htmlspecialchars(str) + '</a>'; |
| 238 | } else { |
| 239 | // 直接显示解析后的字符串内容,不需要重新转义 |
| 240 | // 这样可以保持用户原始输入的意图 |
| 241 | return htmlspecialchars(str); |
| 242 | } |
| 243 | } |
| 244 | |
| 245 | // 格式化JSON为HTML |
| 246 | function formatJsonToHtml(json) { |
no test coverage detected