mirror of
https://github.com/youzan/vant.git
synced 2025-10-21 19:24:16 +00:00
feat: image component
This commit is contained in:
8
src-next/utils/validate/date.ts
Normal file
8
src-next/utils/validate/date.ts
Normal file
@@ -0,0 +1,8 @@
|
||||
import { isNaN } from './number';
|
||||
|
||||
export function isDate(val: Date): val is Date {
|
||||
return (
|
||||
Object.prototype.toString.call(val) === '[object Date]' &&
|
||||
!isNaN(val.getTime())
|
||||
);
|
||||
}
|
5
src-next/utils/validate/email.ts
Normal file
5
src-next/utils/validate/email.ts
Normal file
@@ -0,0 +1,5 @@
|
||||
/* eslint-disable */
|
||||
export function isEmail(value: string): boolean {
|
||||
const reg = /^((([a-z]|\d|[!#\$%&'\*\+\-\/=\?\^_`{\|}~]|[\u00A0-\uD7FF\uF900-\uFDCF\uFDF0-\uFFEF])+(\.([a-z]|\d|[!#\$%&'\*\+\-\/=\?\^_`{\|}~]|[\u00A0-\uD7FF\uF900-\uFDCF\uFDF0-\uFFEF])+)*)|((\x22)((((\x20|\x09)*(\x0d\x0a))?(\x20|\x09)+)?(([\x01-\x08\x0b\x0c\x0e-\x1f\x7f]|\x21|[\x23-\x5b]|[\x5d-\x7e]|[\u00A0-\uD7FF\uF900-\uFDCF\uFDF0-\uFFEF])|(\\([\x01-\x09\x0b\x0c\x0d-\x7f]|[\u00A0-\uD7FF\uF900-\uFDCF\uFDF0-\uFFEF]))))*(((\x20|\x09)*(\x0d\x0a))?(\x20|\x09)+)?(\x22)))@((([a-z]|\d|[\u00A0-\uD7FF\uF900-\uFDCF\uFDF0-\uFFEF])|(([a-z]|\d|[\u00A0-\uD7FF\uF900-\uFDCF\uFDF0-\uFFEF])([a-z]|\d|-|\.|_|~|[\u00A0-\uD7FF\uF900-\uFDCF\uFDF0-\uFFEF])*([a-z]|\d|[\u00A0-\uD7FF\uF900-\uFDCF\uFDF0-\uFFEF])))\.)+(([a-z]|[\u00A0-\uD7FF\uF900-\uFDCF\uFDF0-\uFFEF])|(([a-z]|[\u00A0-\uD7FF\uF900-\uFDCF\uFDF0-\uFFEF])([a-z]|\d|-|\.|_|~|[\u00A0-\uD7FF\uF900-\uFDCF\uFDF0-\uFFEF])*([a-z]|[\u00A0-\uD7FF\uF900-\uFDCF\uFDF0-\uFFEF])))$/i;
|
||||
return reg.test(value);
|
||||
}
|
6
src-next/utils/validate/mobile.ts
Normal file
6
src-next/utils/validate/mobile.ts
Normal file
@@ -0,0 +1,6 @@
|
||||
export function isMobile(value: string): boolean {
|
||||
value = value.replace(/[^-|\d]/g, '');
|
||||
return (
|
||||
/^((\+86)|(86))?(1)\d{10}$/.test(value) || /^0[0-9-]{10,13}$/.test(value)
|
||||
);
|
||||
}
|
12
src-next/utils/validate/number.ts
Normal file
12
src-next/utils/validate/number.ts
Normal file
@@ -0,0 +1,12 @@
|
||||
export function isNumeric(val: string): boolean {
|
||||
return /^\d+(\.\d+)?$/.test(val);
|
||||
}
|
||||
|
||||
export function isNaN(val: number): val is typeof NaN {
|
||||
if (Number.isNaN) {
|
||||
return Number.isNaN(val);
|
||||
}
|
||||
|
||||
// eslint-disable-next-line no-self-compare
|
||||
return val !== val;
|
||||
}
|
13
src-next/utils/validate/system.ts
Normal file
13
src-next/utils/validate/system.ts
Normal file
@@ -0,0 +1,13 @@
|
||||
import { isServer } from '..';
|
||||
|
||||
export function isAndroid(): boolean {
|
||||
/* istanbul ignore next */
|
||||
return isServer ? false : /android/.test(navigator.userAgent.toLowerCase());
|
||||
}
|
||||
|
||||
export function isIOS(): boolean {
|
||||
/* istanbul ignore next */
|
||||
return isServer
|
||||
? false
|
||||
: /ios|iphone|ipad|ipod/.test(navigator.userAgent.toLowerCase());
|
||||
}
|
Reference in New Issue
Block a user