@alauda-fe/common
Version:
Alauda frontend team common codes.
42 lines (39 loc) • 4.52 kB
JavaScript
/**
* https://kubernetes.io/zh/docs/concepts/overview/working-with-objects/names/
const dns1123LabelFmt string = "[a-z0-9]([-a-z0-9]*[a-z0-9])?"
const dns1123SubdomainFmt string = dns1123LabelFmt + "(\\." + dns1123LabelFmt + ")*"
const dns1123SubdomainErrorMsg string = "a lowercase RFC 1123 subdomain must consist of lower case alphanumeric characters, '-' or '.', and must start and end with an alphanumeric character"
// DNS1123SubdomainMaxLength is a subdomain's max length in DNS (RFC 1123)
const DNS1123SubdomainMaxLength int = 253
var dns1123SubdomainRegexp = regexp.MustCompile("^" + dns1123SubdomainFmt + "$")
// IsDNS1123Subdomain tests for a string that conforms to the definition of a
// subdomain in DNS (RFC 1123).
func IsDNS1123Subdomain(value string) []string {
var errs []string
if len(value) > DNS1123SubdomainMaxLength {
errs = append(errs, MaxLenError(DNS1123SubdomainMaxLength))
}
if !dns1123SubdomainRegexp.MatchString(value) {
errs = append(errs, RegexError(dns1123SubdomainErrorMsg, dns1123SubdomainFmt, "example.com"))
}
return errs
}
*/
export function DNS1123SubdomainValidator(ctrl) {
const value = ctrl.value;
if (!value) {
return null;
}
if (value.length > 253) {
return {
domain: true,
};
}
const regex = /^[\da-z]([\da-z-]*[\da-z])?(\.[\da-z]([\da-z-]*[\da-z])?)*$/;
return regex.test(value)
? null
: {
domain: true,
};
}
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiZG5zMTEyMy1zdWJkb21haW4uanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi8uLi8uLi9saWJzL2NvbW1vbi9zcmMvZm9ybS92YWxpZGF0b3JzL2RuczExMjMtc3ViZG9tYWluLnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUVBOzs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7OztHQXVCRztBQUNILE1BQU0sVUFBVSx5QkFBeUIsQ0FBQyxJQUFxQjtJQUM3RCxNQUFNLEtBQUssR0FBRyxJQUFJLENBQUMsS0FBZSxDQUFDO0lBQ25DLElBQUksQ0FBQyxLQUFLLEVBQUUsQ0FBQztRQUNYLE9BQU8sSUFBSSxDQUFDO0lBQ2QsQ0FBQztJQUNELElBQUksS0FBSyxDQUFDLE1BQU0sR0FBRyxHQUFHLEVBQUUsQ0FBQztRQUN2QixPQUFPO1lBQ0wsTUFBTSxFQUFFLElBQUk7U0FDYixDQUFDO0lBQ0osQ0FBQztJQUNELE1BQU0sS0FBSyxHQUFHLDZEQUE2RCxDQUFDO0lBQzVFLE9BQU8sS0FBSyxDQUFDLElBQUksQ0FBQyxLQUFLLENBQUM7UUFDdEIsQ0FBQyxDQUFDLElBQUk7UUFDTixDQUFDLENBQUM7WUFDRSxNQUFNLEVBQUUsSUFBSTtTQUNiLENBQUM7QUFDUixDQUFDIiwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IHsgQWJzdHJhY3RDb250cm9sIH0gZnJvbSAnQGFuZ3VsYXIvZm9ybXMnO1xuXG4vKipcbiAqIGh0dHBzOi8va3ViZXJuZXRlcy5pby96aC9kb2NzL2NvbmNlcHRzL292ZXJ2aWV3L3dvcmtpbmctd2l0aC1vYmplY3RzL25hbWVzL1xuICBjb25zdCBkbnMxMTIzTGFiZWxGbXQgc3RyaW5nID0gXCJbYS16MC05XShbLWEtejAtOV0qW2EtejAtOV0pP1wiXG4gIGNvbnN0IGRuczExMjNTdWJkb21haW5GbXQgc3RyaW5nID0gZG5zMTEyM0xhYmVsRm10ICsgXCIoXFxcXC5cIiArIGRuczExMjNMYWJlbEZtdCArIFwiKSpcIlxuICBjb25zdCBkbnMxMTIzU3ViZG9tYWluRXJyb3JNc2cgc3RyaW5nID0gXCJhIGxvd2VyY2FzZSBSRkMgMTEyMyBzdWJkb21haW4gbXVzdCBjb25zaXN0IG9mIGxvd2VyIGNhc2UgYWxwaGFudW1lcmljIGNoYXJhY3RlcnMsICctJyBvciAnLicsIGFuZCBtdXN0IHN0YXJ0IGFuZCBlbmQgd2l0aCBhbiBhbHBoYW51bWVyaWMgY2hhcmFjdGVyXCJcblxuICAvLyBETlMxMTIzU3ViZG9tYWluTWF4TGVuZ3RoIGlzIGEgc3ViZG9tYWluJ3MgbWF4IGxlbmd0aCBpbiBETlMgKFJGQyAxMTIzKVxuICBjb25zdCBETlMxMTIzU3ViZG9tYWluTWF4TGVuZ3RoIGludCA9IDI1M1xuXG4gIHZhciBkbnMxMTIzU3ViZG9tYWluUmVnZXhwID0gcmVnZXhwLk11c3RDb21waWxlKFwiXlwiICsgZG5zMTEyM1N1YmRvbWFpbkZtdCArIFwiJFwiKVxuXG4gIC8vIElzRE5TMTEyM1N1YmRvbWFpbiB0ZXN0cyBmb3IgYSBzdHJpbmcgdGhhdCBjb25mb3JtcyB0byB0aGUgZGVmaW5pdGlvbiBvZiBhXG4gIC8vIHN1YmRvbWFpbiBpbiBETlMgKFJGQyAxMTIzKS5cbiAgZnVuYyBJc0ROUzExMjNTdWJkb21haW4odmFsdWUgc3RyaW5nKSBbXXN0cmluZyB7XG4gICAgdmFyIGVycnMgW11zdHJpbmdcbiAgICBpZiBsZW4odmFsdWUpID4gRE5TMTEyM1N1YmRvbWFpbk1heExlbmd0aCB7XG4gICAgICBlcnJzID0gYXBwZW5kKGVycnMsIE1heExlbkVycm9yKEROUzExMjNTdWJkb21haW5NYXhMZW5ndGgpKVxuICAgIH1cbiAgICBpZiAhZG5zMTEyM1N1YmRvbWFpblJlZ2V4cC5NYXRjaFN0cmluZyh2YWx1ZSkge1xuICAgICAgZXJycyA9IGFwcGVuZChlcnJzLCBSZWdleEVycm9yKGRuczExMjNTdWJkb21haW5FcnJvck1zZywgZG5zMTEyM1N1YmRvbWFpbkZtdCwgXCJleGFtcGxlLmNvbVwiKSlcbiAgICB9XG4gICAgcmV0dXJuIGVycnNcbiAgfVxuICovXG5leHBvcnQgZnVuY3Rpb24gRE5TMTEyM1N1YmRvbWFpblZhbGlkYXRvcihjdHJsOiBBYnN0cmFjdENvbnRyb2wpIHtcbiAgY29uc3QgdmFsdWUgPSBjdHJsLnZhbHVlIGFzIHN0cmluZztcbiAgaWYgKCF2YWx1ZSkge1xuICAgIHJldHVybiBudWxsO1xuICB9XG4gIGlmICh2YWx1ZS5sZW5ndGggPiAyNTMpIHtcbiAgICByZXR1cm4ge1xuICAgICAgZG9tYWluOiB0cnVlLFxuICAgIH07XG4gIH1cbiAgY29uc3QgcmVnZXggPSAvXltcXGRhLXpdKFtcXGRhLXotXSpbXFxkYS16XSk/KFxcLltcXGRhLXpdKFtcXGRhLXotXSpbXFxkYS16XSk/KSokLztcbiAgcmV0dXJuIHJlZ2V4LnRlc3QodmFsdWUpXG4gICAgPyBudWxsXG4gICAgOiB7XG4gICAgICAgIGRvbWFpbjogdHJ1ZSxcbiAgICAgIH07XG59XG4iXX0=