Skip to content

Match By Rules

Supports multiple matching rules with corresponding masking operations, providing enhanced flexibility and customization capabilities.

ts
const config: Record<string, [string, string]> = {
  // 2-digit pattern
  '^[0-9]{2}$': ['^(.{1})(.*)$', '$1{{*$2}}'],
  // 3+ digits pattern
  '^[0-9]{3,}$': ['^(.{2})(.*)$', '$1{{*$2}}'],
  // Default pattern
  '^.*$': ['^(.*)$', '{{*$1}}'],
};

const rulesTestCases = [
  { input: '12', title: '2-digit number' },
  { input: '123456', title: '3+ digit number' },
  { input: 'abcdefg', title: 'Default pattern' },
];

rulesTestCases.forEach(({ input, title }) => {
  console.log(title, maskText(input, config));
});

// 2-digit number: 1*
// 3+ digit number: 12****
// Default pattern: abcdefg