@txdfe/at
Version:
一个设计体系组件库
43 lines (36 loc) • 1.48 kB
JavaScript
;
Object.defineProperty(exports, "__esModule", {
value: true
});
exports.escapeForId = escapeForId;
exports.randomId = randomId;
function _typeof(obj) { "@babel/helpers - typeof"; return _typeof = "function" == typeof Symbol && "symbol" == typeof Symbol.iterator ? function (obj) { return typeof obj; } : function (obj) { return obj && "function" == typeof Symbol && obj.constructor === Symbol && obj !== Symbol.prototype ? "symbol" : typeof obj; }, _typeof(obj); }
/**
* Generate a string to be used for HTML id attributes
*
* @param {String} prefix - prefix text for the id. Important because without one, eventually there will be 2 elements with the same id on the same page
* @param {Number} max - range for the random number generator. Defaults to 1,000,000, but can be set higher if necessary.
* @returns {String}
*/
function randomId(prefix) {
var max = arguments.length > 1 && arguments[1] !== undefined ? arguments[1] : 1000000;
var rand = Math.ceil(Math.random() * max);
return prefix ? "".concat(escapeForId(prefix), "-").concat(rand) : rand.toString(10);
}
/**
* Replace characters not allowed for HTML id attributes
*
* @param {String} text
* @returns {String}
*/
function escapeForId(text) {
if (!text) {
return '';
}
if (_typeof(text) === 'object') {
text = JSON.stringify(text);
} else if (typeof text !== 'string') {
text = String(text);
}
return text.replace(/['"]/gm, '').replace(/[\s'"]/gm, '-');
}