| 123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149150151152153154155156157158159160161162163164165166167 |
- const bindMessage = (fn, message) => {
- fn.message = field => message.replace("%s", field || "");
- };
- export function required(message, opt = {}) {
- return {
- required: true,
- message,
- type: "string",
- ...opt
- };
- }
- bindMessage(required, "请输入%s");
- export function url(message, opt = {}) {
- return {
- type: "url",
- message,
- ...opt
- };
- }
- bindMessage(url, "请输入正确的链接");
- export function email(message, opt = {}) {
- return {
- type: "email",
- message,
- ...opt
- };
- }
- bindMessage(email, "请输入正确的邮箱地址");
- /**
- * 验证字段必须完全由字母构成。
- *
- * @param message
- * @returns {*}
- */
- export function alpha(message) {
- return attrs.pattern(/^[\w]+$/, message);
- }
- bindMessage(alpha, "%s必须是字母");
- /**
- * 只能包含由字母、数字,以及 - 和 _
- *
- * @param message
- * @returns {*}
- */
- export function alpha_dash(message) {
- return attrs.pattern(/^[\w\d_-]+$/, message);
- }
- bindMessage(alpha_dash, "%s只能包含由字母、数字,以及 - 和 _");
- /**
- * 必须是完全是字母、数字
- *
- * @param message
- * @returns {*}
- */
- export function alpha_num(message) {
- return attrs.pattern(/^[\w\d]+$/, message);
- }
- bindMessage(alpha_num, "%s只能包含字母、数字");
- /**
- * 正确的金额
- *
- * @param message
- * @returns {*}
- */
- export function num(message) {
- return attrs.pattern(
- /(^[1-9]([0-9]+)?(\.[0-9]{1,2})?$)|(^(0){1}$)|(^[0-9]\.[0-9]([0-9])?$)/,
- message
- );
- }
- bindMessage(num, "%s格式不正确");
- /**
- * 只能是汉字
- * @param message
- * @returns {*}
- */
- export function chs(message) {
- return attrs.pattern(/^[\u4e00-\u9fa5]+$/, message);
- }
- bindMessage(chs, "%s只能是汉字");
- /**
- * 只能包含汉字、字母
- * @param message
- * @returns {*}
- */
- export function chs_alpha(message) {
- return attrs.pattern(/^[\u4e00-\u9fa5\w]+$/, message);
- }
- bindMessage(chs_alpha, "%s只能包含汉字、字母");
- /**
- * 只能包含汉字、字母和数字
- * @param message
- * @returns {*}
- */
- export function chs_alpha_num(message) {
- return attrs.pattern(/^[\u4e00-\u9fa5\w\d]+$/, message);
- }
- bindMessage(chs_alpha_num, "%s只能包含汉字、字母和数字");
- /**
- * 只能包含由汉字、字母、数字,以及 - 和 _
- * @param message
- * @returns {*}
- */
- export function chs_dash(message) {
- return attrs.pattern(/^[\u4e00-\u9fa5\w\d-_]+$/, message);
- }
- bindMessage(chs_dash, "%s只能包含由汉字、字母、数字,以及 - 和 _");
- /**
- * 手机号验证
- * @param message
- * @returns {*}
- */
- export function chs_phone(message) {
- return attrs.pattern(/^1(3|4|5|7|8|9|6)\d{9}$/i, message);
- }
- bindMessage(chs_phone, "请输入正确的手机号码");
- const baseAttr = {
- min: "%s最小长度为:min",
- max: "%s最大长度为:max",
- length: "%s长度必须为:length",
- range: "%s长度为:range",
- pattern: "$s格式错误"
- };
- const attrs = Object.keys(baseAttr).reduce((attrs, key) => {
- attrs[key] = (attr, message = "", opt = {}) => {
- const _attr =
- key === "range" ? { min: attr[0], max: attr[1] } : { [key]: attr };
- return {
- message: message.replace(
- `:${key}`,
- key === "range" ? `${attr[0]}-${attr[1]}` : attr
- ),
- type: "string",
- ..._attr,
- ...opt
- };
- };
- bindMessage(attrs[key], baseAttr[key]);
- return attrs;
- }, {});
- export default attrs;
|