luhn-generator
Version:
A generator of numbers that passes the validation of Luhn algorithm or Luhn formula, also known as the 'modulus 10' or 'mod 10' algorithm
36 lines (28 loc) • 916 B
JavaScript
import { validLangs, getBaseLang } from '../../core/utils';
import { sanitize } from '../../commons/text';
function validLangEvaluate(node, options, virtualNode) {
const langs = (options.value ? options.value : validLangs()).map(getBaseLang);
const invalid = [];
options.attributes.forEach(langAttr => {
const langVal = virtualNode.attr(langAttr);
if (typeof langVal !== 'string') {
return;
}
const baselangVal = getBaseLang(langVal);
// Edge sets lang to an empty string when xml:lang is set
// so we need to ignore empty strings here
if (
(baselangVal !== '' && langs.indexOf(baselangVal) === -1) ||
// whitespace only lang value is invalid
(langVal !== '' && !sanitize(langVal))
) {
invalid.push(langAttr + '="' + virtualNode.attr(langAttr) + '"');
}
});
if (invalid.length) {
this.data(invalid);
return true;
}
return false;
}
export default validLangEvaluate;