axe-core
Version:
Accessibility engine for automated Web UI testing
39 lines (36 loc) • 1.05 kB
JavaScript
import {
getUnicodeNonBmpRegExp,
getSupplementaryPrivateUseRegExp,
getPunctuationRegExp
} from './unicode';
import emojiRegexText from 'emoji-regex';
/**
* Determine if a given string contains unicode characters, specified in options
*
* @method hasUnicode
* @memberof axe.commons.text
* @instance
* @param {String} str string to verify
* @param {Object} options config containing which unicode character sets to verify
* @property {Boolean} options.emoji verify emoji unicode
* @property {Boolean} options.nonBmp verify nonBmp unicode
* @property {Boolean} options.punctuations verify punctuations unicode
* @returns {Boolean}
*/
function hasUnicode(str, options) {
const { emoji, nonBmp, punctuations } = options;
if (emoji) {
return emojiRegexText().test(str);
}
if (nonBmp) {
return (
getUnicodeNonBmpRegExp().test(str) ||
getSupplementaryPrivateUseRegExp().test(str)
);
}
if (punctuations) {
return getPunctuationRegExp().test(str);
}
return false;
}
export default hasUnicode;