UNPKG

react-email-mask

Version:

A react module that masks email addresses from any input string

43 lines (32 loc) 1.4 kB
import 'react'; var maskEmail = function maskEmail(stringValue) { var oldStringValue = stringValue; var re = /([a-zA-Z0-9._-]+@[a-zA-Z0-9._-]+\.[a-zA-Z0-9._-]+)/gi; var foundEmails = []; var match; while (match = stringValue.match(re)) { foundEmails.push(match[0]); stringValue = stringValue.replace(match[0], ""); } var maskedEmails = []; for (var i = 0; i < foundEmails.length; i++) { var strArr = foundEmails[i].split('@'); var left = strArr[0].length <= 1 ? '*' : strArr[0].length <= 2 ? '**' : strArr[0].slice(0, 1) + '*'.repeat(strArr[0].length - 2) + strArr[0].slice(strArr[0].length - 1, strArr[0].length); var domain = strArr[1].split('.')[0]; var right = domain.length <= 1 ? '*' : domain.length <= 2 ? '**' : domain.slice(0, 1) + '*'.repeat(domain.length - 2) + domain.slice(domain.length - 1, domain.length); maskedEmails.push(left + '@' + right + '.' + strArr[1].split('.')[1]); } stringValue = oldStringValue; for (var i = 0; i < foundEmails.length; i++) { stringValue = replaceAll(stringValue, foundEmails[i], maskedEmails[i]); } return stringValue; }; function replaceAll(str, find, replace) { return str.replace(new RegExp(escapeRegExp(find), 'g'), replace); } function escapeRegExp(string) { return string.replace(/[.*+?^${}()|[\]\\]/g, '\\$&'); } export { maskEmail }; //# sourceMappingURL=index.modern.js.map