gongxiangp2/lib/highlight.tsx
chenpei 752b7bf999 fix: 修复批量上传和视频扩展名问题
主要修复:

- 修复批量上传闭包陷阱,防止文件丢失

- 添加 fileName 参数传递原始文件名,保留正确扩展名

- 添加取消检查回调,改进批量上传取消功能

其他改进:

- 优化搜索功能和管理后台

- 添加 FRP 故障诊断文档

- 更新环境验证和网络检测
2026-02-03 11:12:50 +08:00

36 lines
895 B
TypeScript

import React from 'react'
/**
* 高亮文本中的关键词
* @param text 原始文本
* @param keyword 关键词
* @returns ReactNode
*/
export function highlightText(text: string, keyword: string): React.ReactNode {
if (!keyword || !text || !keyword.trim()) return text
// 转义正则特殊字符
const escapeRegex = (str: string) => str.replace(/[.*+?^${}()|[\]\\]/g, '\\$&')
try {
const regex = new RegExp(`(${escapeRegex(keyword.trim())})`, 'gi')
const parts = text.split(regex)
return (
<>
{parts.map((part, i) =>
regex.test(part) ? (
<mark key={i} className="bg-transparent text-blue-600 dark:text-blue-400 font-bold px-0">
{part}
</mark>
) : (
part
)
)}
</>
)
} catch (e) {
console.error('Highlight error:', e)
return text
}
}