如何在JavaScript中实现指定规则的字符串掩码处理?
JavaScript Masking Solution for Names & Numbers
Based on your specified masking rules, here's a straightforward, easy-to-use JavaScript implementation with dedicated helper functions for names and numeric strings:
Masking Names
Rule: Keep only the first and last characters, replace all middle characters with asterisks (*).
function maskName(name) { // Handle edge cases: empty string, single character, or two-character names if (name.length <= 2) return name; // Combine first char, asterisks for middle, and last char return name[0] + '*'.repeat(name.length - 2) + name.at(-1); }
Masking Numbers
Rule: Keep the first 3 characters and last 4 characters, replace the middle segment with asterisks (*).
function maskNumber(number) { // Handle edge case: numbers shorter than 7 characters (can't split into first 3 + last 4) if (number.length < 7) return number; // Calculate middle length, then build masked string const middleLength = number.length - 3 - 4; return number.slice(0, 3) + '*'.repeat(middleLength) + number.slice(-4); }
Full Example Usage
Here’s how to apply these functions to get your exact expected output:
// Original values const name = "Smith"; const name2 = "Kithmatch"; const number = "342782828"; const number2 = "012221112230"; // Apply masking const maskedName = maskName(name); // "S***h" const maskedName2 = maskName(name2); // "K*******h" const maskedNumber = maskNumber(number); // "342**2828" const maskedNumber2 = maskNumber(number2); // "012*****2230" // Log results to match your desired format console.log(`const name = "${maskedName}"`); console.log(`const name2 = "${maskedName2}"`); console.log(`const number = "${maskedNumber}"`); console.log(`const number2 = "${maskedNumber2}"`);
Quick Edge Case Notes
- For names with 2 or fewer characters (e.g., "Jo" or "Z"), the function returns the original string since there’s no middle content to mask.
- For numbers shorter than 7 characters (e.g., "12345"), the function returns the original string—you can tweak this logic if you need a different behavior for shorter numeric inputs.
内容的提问来源于stack exchange,提问作者DD DD
相关产品推荐
相关产品推荐

