UNPKG

anitimejs

Version:

Thư viện xử lý chuỗi số và thời gian trong JavaScript/Typescript

81 lines (80 loc) 3.1 kB
/** * Tùy chọn cho hàm tạo và xử lý slug */ export interface SlugOptions { /** Ký tự phân cách giữa các từ (mặc định: "-") */ separator?: string; /** Chuyển đổi sang chữ thường (mặc định: true) */ lowercase?: boolean; /** Loại bỏ dấu tiếng Việt (mặc định: true) */ removeAccents?: boolean; /** Giới hạn độ dài slug (mặc định: 0 - không giới hạn) */ maxLength?: number; /** Loại bỏ các ký tự không phải chữ và số (mặc định: true) */ removeNonAlphanumeric?: boolean; /** Thay thế ký tự khoảng trắng (mặc định: true - dùng separator) */ replaceWhitespace?: boolean; /** Xử lý các ký tự đặc biệt (mặc định: {}) */ customReplacements?: Record<string, string>; } /** * Tạo slug từ chuỗi với nhiều tùy chọn * * @param input Chuỗi đầu vào cần chuyển thành slug * @param options Tùy chọn xử lý slug * @returns Chuỗi slug đã được xử lý * * @example * // Tạo slug cơ bản * createSlug("Hello World"); // "hello-world" * * // Xử lý tiếng Việt * createSlug("Chào Thế Giới"); // "chao-the-gioi" * * // Với tùy chọn * createSlug("Product Name (Version 2.0)", { * separator: "_", * maxLength: 20, * customReplacements: { "2.0": "2-0" } * }); // "product_name_version" */ export declare function createSlug(input: string, options?: SlugOptions): string; /** * Kiểm tra xem một chuỗi có phải slug hợp lệ không * * @param slug Chuỗi slug cần kiểm tra * @param pattern Mẫu regex tùy chỉnh (tùy chọn) * @returns true nếu là slug hợp lệ, false nếu không * * @example * isValidSlug("hello-world"); // true * isValidSlug("hello world"); // false * isValidSlug("product_123", /^[a-z0-9_]+$/); // true */ export declare function isValidSlug(slug: string, pattern?: RegExp): boolean; /** * Tạo một slug duy nhất từ một chuỗi, thêm hậu tố số nếu cần * * @param input Chuỗi đầu vào * @param existingSlugs Mảng các slug đã tồn tại để kiểm tra trùng lặp * @param options Tùy chọn xử lý slug * @returns Slug duy nhất đã được xử lý * * @example * createUniqueSlug("Hello", ["hello", "hello-1"]); // "hello-2" */ export declare function createUniqueSlug(input: string, existingSlugs?: string[], options?: SlugOptions): string; /** * Lấy một phần của slug, mặc định là phần cuối cùng * * @param slug Chuỗi slug cần xử lý * @param position Vị trí cần lấy (mặc định: 'last') * @param separator Ký tự phân cách (mặc định: "-") * @returns Phần của slug đã được xử lý * * @example * getSlugPart("blog/2023/post-title"); // "post-title" * getSlugPart("blog/2023/post-title", 'first', '/'); // "blog" * getSlugPart("blog/2023/post-title", 1, '/'); // "2023" */ export declare function getSlugPart(slug: string, position?: "first" | "last" | number, separator?: string): string;