normalizeExternalId
跨 HTTP / JWT / IM 入参的统一外部 id 规范化与校验。
函数签名
typescript
const MAX_EXTERNAL_ID_LENGTH = 512
const EXTERNAL_ID_CHAR_CLASS_RE = /^[^\x00-\x1f\x7f\\/\u202e]+$/u
function normalizeOptionalExternalId(raw: unknown): string | undefined
function isValidExternalIdString(s: string): boolean参数
| 参数名 | 类型 | 必填 | 说明 |
|---|---|---|---|
raw | unknown | 是 | 原始入参(通常 query / body / JWT) |
s | string | 是 | 已知为 string 时的便捷校验 |
返回值
| 函数 | 类型 | 说明 |
|---|---|---|
normalizeOptionalExternalId | string | undefined | 合法则 trim 后字符串;否则 undefined |
isValidExternalIdString | boolean | 是否通过规范化 |
工作原理
- 非 string、空串、超长(>512)、含控制符/
//\/U+202E 均视为非法。 EXTERNAL_ID_CHAR_CLASS_RE供 class-validator@Matches使用(不含长度约束)。
使用场景
- IM
peer_user_id、联系人查询参数 - JWT
sub与库主键的字符串形式校验