MCPcopy Index your code
hub / github.com/Bistutu/FluentRead / isNumericContent

Function isNumericContent

entrypoints/main/dom.ts:268–323  ·  view source on GitHub ↗

* 检查文本是否为纯数字或标准数字格式 * * 识别以下数字格式: * 1. 整数 (例如: 12345, -123) * 2. 带千位分隔符的数字 (例如: 1,234,567) * 3. 数字范围 (例如: 1-100, 5~10) * 4. 小数 (例如: 3.14159) * 5. 百分比 (例如: 85%, -2.5%) * 6. 科学计数法 (例如: 1.23e+4) * 7. 货币金额 (例如: $123.45, €100) * 8. 常见日期格式 (例如: 2023-01-01, 01/01/2023) * 9. 时间格式 (例如: 13:45:30,

(text: string)

Source from the content-addressed store, hash-verified

266 * 这些格式的数字和用户标识符通常不需要翻译,保持原样更有利于页面理解。
267 */
268function isNumericContent(text: string): boolean {
269 if (!text || typeof text !== 'string') return false;
270
271 // 去除空白字符
272 const trimmedText = text.trim();
273 if (!trimmedText) return false;
274
275 // 首先检查是否为用户标识符
276 if (isUserIdentifier(trimmedText)) return true;
277
278 // 如果包含多个单词,则不视为纯数字内容
279 if (/\s+/.test(trimmedText.replace(/[\d,.\-%+]/g, ''))) return false;
280
281 // 检查是否为纯数字
282 if (/^-?\d+$/.test(trimmedText)) return true;
283
284 // 检查是否为标准数字格式:带逗号的数字 (例如: 1,234,567)
285 if (/^-?(\d{1,3}(,\d{3})+)$/.test(trimmedText)) return true;
286
287 // 检查是否为范围数字 (例如: 1-123)
288 if (/^\d+\s*[-~]\s*\d+$/.test(trimmedText)) return true;
289
290 // 检查是否为小数
291 if (/^-?\d+\.\d+$/.test(trimmedText)) return true;
292
293 // 检查是否为百分比
294 if (/^-?\d+(\.\d+)?%$/.test(trimmedText)) return true;
295
296 // 检查是否为科学计数法 (例如: 1.23e+4)
297 if (/^-?\d+(\.\d+)?(e[-+]\d+)?$/i.test(trimmedText)) return true;
298
299 // 检查是否为带货币符号的金额 (例如: $123.45, €123, ¥123)
300 if (/^[$€¥£₹₽₩]?\s*-?\d+(,\d{3})*(\.\d+)?$/.test(trimmedText)) return true;
301
302 // 检查是否为日期时间格式 (仅考虑常见的数字日期格式)
303 // 匹配 YYYY-MM-DD, YYYY/MM/DD, DD-MM-YYYY, DD/MM/YYYY, MM-DD-YYYY, MM/DD/YYYY
304 if (/^(\d{4}[-/]\d{1,2}[-/]\d{1,2}|\d{1,2}[-/]\d{1,2}[-/]\d{4}|\d{1,2}[-/]\d{1,2}[-/]\d{1,2})$/.test(trimmedText)) return true;
305
306 // 匹配时间格式 HH:MM:SS, HH:MM
307 if (/^\d{1,2}:\d{2}(:\d{2})?$/.test(trimmedText)) return true;
308
309 // 匹配版本号 (例如: 1.0.0, 2.3.5-beta)
310 if (/^\d+(\.\d+){1,3}(-[a-zA-Z0-9]+)?$/.test(trimmedText)) return true;
311
312 // 匹配社交媒体的ID格式
313 if (/^id@https?:\/\/(x\.com|twitter\.com)\/[\w-]+\/status\/\d+/.test(trimmedText)) return true;
314
315 // 匹配常见的数字ID格式
316 if (/^ID[::]?\s*\d+$/.test(trimmedText)) return true;
317 if (/^No[\.:]?\s*\d+$/i.test(trimmedText)) return true;
318
319 // #数字 格式的
320 if (/^#[\d]+$/.test(trimmedText)) return true;
321
322 return false;
323}
324
325// 检查是否为按钮

Callers 1

isMainlyNumericContentFunction · 0.85

Calls 1

isUserIdentifierFunction · 0.85

Tested by

no test coverage detected