1234567891011121314151617181920212223242526272829303132333435363738 |
- 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;
|