1.blob文件流,后端返回后前端如何处理。
const getBlobUrlFromWindowsFile = async (data) => {
let blobUrl = ''
let res = await service.commonFileView({
fileId: data.fileId || data.recId,
})
if (res?.success?.toString() == 'false') {
message.error(res.message)
} else {
let blob = new Blob([res], { type: 'image/png' })
blobUrl = window.URL.createObjectURL(blob)
}
return blobUrl
}
2.validator
validator的vue下依赖包的输入框字符校验。在main.js文件或者每个可能用到的vue文件中单独引入该函数,调用函数下的方法。
使用antdv的自带校验。
const rules = {
remark: [{
required: false,
validator: (rule,value) => {
let len = getByteLength(value)
if (len > 400) {
return Promise.reject("特批项目不能超过400字符")
} else {
return Promise.resolve()
}
},
trigger: 'blur',
}]
}
使用validator组件校验
npm install validator
或者使用html内引入
<script type="text/javascript" src="validator.min.js"></script>
非 ES6
var validator = require('validator');
validator.isEmail('foo@bar.com'); //=> true
ES6
import validator from 'validator';
或者只导入库的一个子集:
import isEmail from 'validator/lib/isEmail';
方式一
//main.js
// 表单验证
import validator from 'validator';
Vue.prototype.$validator = validator;
全局使用
this.$validator.isEthereumAddress("0xb9bD2F4Ea01DA3692d50259ABF8e6E21317dC517")
方式二
在需要使用的vue页面中单独引入
import validator from 'validator';
.vue文件局部使用
validator.isEthereumAddress("0xb9bD2F4Ea01DA3692d50259ABF8e6E21317dC517")
————————————————
版权声明:本文为CSDN博主「JackieDYH」的原创文章,遵循CC 4.0 BY-SA版权协议,转载请附上原文出处链接及本声明。
原文链接:https://blog.csdn.net/JackieDYH/article/details/125161935
Validator | Description |
contains(str, seed) | 验证str中是否含有seed |
equals(str, comparison) | 验证是否相等 |
isAfter(str [, date]) | 验证str是否是一个指定date之后的时间字符串,默认date为现在,与之相反的是isBefore方法 |
isAlpha(str [, locale]) | 检查字符串是否只包含字母(a-Za-Z)。 Locale is one of ['ar','ar-AE', 'ar-BH', 'ar-DZ', 'ar-EG', 'ar-IQ', 'ar-JO', 'ar-KW', 'ar-LB','ar-LY', 'ar-MA', 'ar-QA', 'ar-QM', 'ar-SA', 'ar-SD', 'ar-SY', 'ar-TN','ar-YE', 'bg-BG', 'cs-CZ', 'da-DK', 'de-DE', 'el-GR', 'en-AU', 'en-GB','en-HK', 'en-IN', 'en-NZ', 'en-US', 'en-ZA', 'en-ZM', 'es-ES', 'fr-FR','fa-IR', 'he', 'hu-HU', 'it-IT', 'ku-IQ', 'nb-NO', 'nl-NL', 'nn-NO','pl-PL', 'pt-BR', 'pt-PT', 'ru-RU', 'sl-SI', 'sk-SK', 'sr-RS','sr-RS@latin', 'sv-SE', 'tr-TR', 'uk-UA']) and defaults to en-US. Locale list is validator.isAlphaLocales. |
isAlphanumeric(str [, locale]) | 检查字符串是否仅包含字母和数字。 Locale is one of ['ar', 'ar-AE', 'ar-BH', 'ar-DZ', 'ar-EG', 'ar-IQ', 'ar-JO', 'ar-KW', 'ar-LB', 'ar-LY', 'ar-MA', 'ar-QA', 'ar-QM', 'ar-SA', 'ar-SD', 'ar-SY', 'ar-TN', 'ar-YE', 'bg-BG', 'cs-CZ', 'da-DK', 'de-DE', 'el-GR', 'en-AU', 'en-GB', 'en-HK', 'en-IN', 'en-NZ', 'en-US', 'en-ZA', 'en-ZM', 'es-ES', 'fr-FR', 'fa-IR', 'he', 'hu-HU', 'it-IT', 'ku-IQ', 'nb-NO', 'nl-NL', 'nn-NO', 'pl-PL', 'pt-BR', 'pt-PT', 'ru-RU', 'sl-SI', 'sk-SK', 'sr-RS', 'sr-RS@latin', 'sv-SE', 'tr-TR', 'uk-UA']) and defaults to en-US. Locale list is validator.isAlphanumericLocales. |
isAscii(str) | 检查字符串是否仅包含ASCII字符。 |
isBase32(str) | 检查字符串是否为base32 编码。 |
isBase64(str) | 检查字符串是否为base64 编码。 |
isBefore(str [, date]) | 检查字符串是否为指定日期之前的日期。 |
isBoolean(str) | 检查字符串是否为布尔值。 |
isByteLength(str [, options]) | 检查字符串的长度(UTF-8字节)是否在某个范围内。 选项是一个默认为{最小:0,最大:未定义}的对象。 |
isCurrency(str [, options]) | 检查字符串是否为有效的货币金额。 选项是默认为{符号: “$”,require\u symbol:false,allow\u space\u after\u symbol:false, \u数字后的symbol\u:false,allow\u negatives:true,parens\u for\u negatives: false,negative\u sign\u before\u digits:false,negative\u sign\u before\u digits: false,allow\u negative\u sign\u占位符:false,千位分隔符:',', 十进制分隔符:',allow\u decimal:true,require\u decimal:false, 小数点后的数字:\u:[2],允许\u数字后有\u空格:false}。 注意:\u decimal后面的数组数字\u是用不允许的精确位数填充的,例如,范围1到3将被指定为[1,2,3]。 |
isEthereumAddress(str) | 使用基本正则表达式检查字符串是否为以太坊地址。不验证地址校验和。 |
isBtcAddress(str) | 检查字符串是否为有效的BTC地址。 |
isDataURI(str) | 检查字符串是否为数据uri格式。 |
isDecimal(str [, options]) | 检查字符串是否表示十进制数,例如0.1、。3, 1.1, 1.00003, 4.0,etc.options是一个对象,默认值为{force\u decimal:false,decimal\u digits:'1',locale:'en-US'}locale确定十进制分隔符,是[‘ar’、‘ar-AE’、‘ar BH’、‘ar DZ’、‘ar EG’、‘ar IQ’、‘ar JO’、‘ar KW’、‘ar LB’、‘ar-LY’、‘ar MA’、‘ar QA’、‘ar QM’、‘ar SA’、‘ar SD’、‘ar SY’、‘ar TN’、‘ar-YE’、‘bg bg’、‘cs CZ’、‘da DK’、‘de de’、‘en AU’、‘en GB’、‘en HK’、‘en IN’、‘en NZ’、‘en US’、‘en ZA’、‘en ZM’、‘es es es’、‘fr fr fr’、‘hu’、‘it-it’、‘ku IQ’“ru-ru”、“sl SI”、“sr RS”、“sr”-RS@latin“,”sv SE“,”tr tr“,”英国UA“]。注:十进制\u数字的范围为“1,3”,具体值为“3”,或最小值为“1”。 |
isDivisibleBy(str, number) | 检查字符串是否是可被其他字符串整除的数字。 |
isEmail(str [, options]) | 检查字符串是否为电子邮件。 选项是一个默认为{ allow\u display\u name:false,require\u display\u name:false, allow\u utf8\u local\u part:true,require\u tld:true,allow\u ip\u domain:false, domain\u specific\u验证:false}。如果allow\u display\u name设置为true,验证器还将匹配显示名称<电子邮件地址>。如果require\u display\u name设置为true,验证程序将拒绝没有格式显示名称<电子邮件地址>的字符串。如果allow\u utf8\u local\u part设置为false,验证器将不允许在电子邮件地址的“local part”中使用任何非英语utf8字符。如果require\u tld设置为false,则也会匹配其域中没有tld的电子邮件地址。如果ignore\u max\u length设置为true,验证程序将不会检查电子邮件的标准最大长度。如果allow\u ip\u domain设置为true,验证程序将允许主机部分中的ip地址。如果domain\u specific\u validation为true,则会启用一些额外的验证,例如不允许GMail拒绝的某些语法有效的电子邮件地址。 |
isEmpty(str [, options]) | 检查字符串的长度是否为零。 options是一个默认为{ignore\u whitespace:false}的对象。 |
isFloat(str [, options]) | 检查字符串是否为浮点数。 选项是一个对象,它可以包含键min、max、gt和/或lt,以验证浮点是否在边界内(例如{min:7.22,max:9.55}),它还将区域设置作为选项。 min和max分别相当于“大于或等于”和“小于或等于”,而gt和lt是它们的严格对应项。 locale确定十进制分隔符,并且是['ar',“ar AE”、“ar BH”、“ar DZ”、“ar EG”、“ar IQ”、“ar JO”、“ar KW”、“ar LB”,“ar LY”、“ar MA”、“ar QA”、“ar QM”、“ar SA”、“ar SD”、“ar SY”、“ar TN”,“ar YE”、“bg bg”、“cs CZ”、“da DK”、“de de”、“en AU”、“en GB”、“en HK”,“en IN”、“en NZ”、“en US”、“en ZA”、“en ZM”、“es es es”、“fr fr”、“hu hu”,“it it”、“nb NO”、“nl nl”、“nn NO”、“pl pl”、“pt BR”、“pt pt”、“ru ru”,“sl SI”、“sr RS”、“sr”-RS@latin“,”sv SE“,”tr tr“,”英国UA“]之一。Locale list is validator.isFloatLocales。 |
isFQDN(str [, options]) | 检查字符串是否为完全限定的域名(例如domain.com)。 options是一个默认为{require\u tld:true,allow\u下划线:false,allow\u trailing\u dot:false}的对象。 isFullWidth(str)检查字符串是否包含任何全宽字符。 isHalfWidth(str)检查字符串是否包含任何半角字符。 isHash(str,algorithm)检查字符串是否是algorithm类型的哈希。 算法是['md4',“md5”、“sha1”、“SH256”、“SH384”、“SH512”、“ripemd128”、“ripemd160”,“tiger128”、“tiger160”、“tiger192”、“crc32”、“crc32b”]之一 |
isHexadecimal(str) | 检查字符串是否为十六进制数。 |
isHexColor(str) | 检查字符串是否为十六进制颜色。 |
isHSL(str) | 检查字符串是否是基于CSS颜色级别4规范的HSL(色调、饱和度、亮度、可选alpha)颜色。 支持逗号分隔格式。支持空格分隔格式,但少数边缘情况除外(例如:hsl(200grad+.1%62%/1))。 |
isRgbColor(str, [, includePercentValues]) | 检查字符串是rgb还是rgba颜色。 includePercentValues默认为true。如果不希望允许使用百分比设置rgb或rgba值,如rgb(5%、5%、5%)或rgba(90%、90%、90%、90%、0.3),请将其设置为false。 |
isIdentityCard(str [, locale]) | 检查字符串是否为有效的身份证代码。 locale是['ES',zh TW',he IL',或“any”之一。如果使用了“any”,函数将检查是否有任何局部变量匹配。 默认为“any”。 |
isIn(str, values) | 检查字符串是否位于允许值的数组中。 |
isInt(str [, options]) | 检查字符串是否为整数。 选项是一个对象,可以包含键min和/或max,以检查整数是否在边界内(例如{min:10,max:99})。选项还可以包含键allow\u leading\u zeroes,当设置为false时,将不允许使用前导零的整数值(例如{allow\u leading\u zeroes:false})。最后,选项可以包含键gt和/或lt,这将强制整数分别大于或小于提供的值(例如,对于介于1和4之间的数字,{gt:1,lt:4})。 |
isIP(str [, version]) | 检查字符串是否为IP(版本4或6)。 |
isIPRange(str) | 检查字符串是否为IP范围(仅限版本4)。 |
isISBN(str [, version]) | 检查字符串是否为ISBN(版本10或13)。 |
isEAN(str) | 检查字符串是否为EAN(欧洲商品编号)。 |
isISIN(str) | 检查字符串是否为ISIN(股票/证券标识符)。 |
isISO31661Alpha2(str) | 检查字符串是否为有效的ISO 3166-1 alpha-2官方指定的国家/地区代码。 |
isISO31661Alpha3(str) | 检查字符串是否为有效的ISO 3166-1 alpha-3官方指定的国家/地区代码。 |
isISO8601(str) | 检查字符串是否为有效的ISO 8601日期;对于有效日期的其他检查,如使日期(如2009-02-29)无效,请将options对象作为第二个参数传递给options。严格=真。 |
isISSN(str [, options]) | 检查字符串是否为ISSN。options是一个默认为{区分大小写:false,require\u连字符:false}的对象。如果区分大小写为true,则拒绝使用小写“x”作为校验位的ISSN。 |
isOctal(str) | 检查字符串是否为有效的八进制数。 |
isUppercase(str) | 检查字符串是否为大写。 |
isISRC(str) | 检查字符串是否为ISRC。 |
isRFC3339(str) | 检查字符串是否为有效的RFC 3339日期。 |
isJSON(str) | 检查字符串是否为有效的JSON(注意:使用JSON.parse)。 |
isLatLong(str) | 检查字符串是否是格式为lat,long或lat,long的有效经纬度坐标。 |
isLength(str [, options]) | 检查字符串的长度是否在某个范围内。 选项是一个默认为{最小:0,最大:未定义}的对象。注意:此函数考虑代理项对。 |
isLocale(str) | 检查字符串是否为区域设置 |
isLowercase(str) | 检查字符串是否为小写。 |
isMACAddress(str) | 检查字符串是否为MAC地址。 选项是一个默认为{no\u colons:false}的对象。如果no\u冒号为true,验证程序将允许MAC地址不带冒号。此外,它还允许使用连字符、空格或点,例如“01 02 03 04 05 ab”、“01-02-03-04-05-ab”或“0102.0304.05ab”。 |
isMagnetURI(str) | 检查字符串是否为magnet uri格式。 |
isMD5(str) | 检查字符串是否为MD5哈希。 请注意,您还可以使用isHash(str,'md5')函数。请记住,与其他算法(如SHA)相比,MD5有一些冲突弱点。 |
isMobilePhone(str [, locale [, options]]) | 检查字符串是否为移动电话号码, (locale是locale数组(例如['sk-sk','sr-RS')或['ar-AE'之一, “ar BH”、“ar DZ”、“ar EG”、“ar IQ”、“ar JO”、“ar KW”、“ar SA”、“ar SY”, “ar TN”、“be BY”、“bg bg”、“bn BD”、“cs CZ”、“de de”、“de AT”、“da DK”,“el GR”、“en AU”、“en CA”、“en GB”、“en GG”、“en GH”、“en HK”、“en MO”,‘en-IE’、‘en-IN’、‘en-KE’、‘en-MT’、‘en-MU’、‘en-NG’、‘en-NZ’、‘en-RW’,“en SG”、“en UG”、“en US”、“en TZ”、“en ZA”、“en ZM”、“en PK”、“es EC”,“es es”、“es MX”、“es PA”、“es PY”、“es UY”、“et EE”、“fa IR”、“fi fi”,“fj fj”、“fr fr”、“fr GF”、“fr GP”、“fr MQ”、“fr RE”、“he IL”、“hu hu”,“id id”、“it it”、“ja JP”、“kk KZ”、“ko KR”、“lt lt”、“ms MY”、“nb NO”,“ne NP”、“nl BE”、“nl nl”、“nn NO”、“pl pl”、“pt pt”、“pt BR”、“ro ro”,“ru ru”、“sl SI”、“sk sk”、“sr RS”、“sv SE”、“th th”、“tr tr”、“uk UA”, “vi VN”、“zh CN”、“zh HK”、“zh MO”、“zh TW”]或默认为“any”。如果使用了“any”或假值,函数将检查任何区域设置是否匹配)。 options是一个可选对象,可以使用以下键提供:strictMode,如果设置为true,则必须为手机号码提供国家/地区代码,因此必须以+开头。Locale list is validator.isMobilePhoneLocales。 |
isMongoId(str) | 检查字符串是否是MongoDB ObjectId的有效十六进制编码表示形式。 |
isMultibyte(str) | 检查字符串是否包含一个或多个多字节字符。isNumeric(str[,options])检查字符串是否只包含数字。选项是一个默认为{no\u symbols:false}的对象。如果no\u symbols为true,验证程序将拒绝包含符号(例如+、-、或)的数字字符串。 |
isPassportNumber(str, countryCode) | 检查字符串是否是相对于特定国家/地区代码的有效护照号码。 |
isPort(str) | 检查字符串是否为有效的端口号。 |
isPostalCode(str, locale) | 检查字符串是否为邮政编码, (语言环境是[ “AD”、“AT”、“AU”、“BE”、“BG”、“BR”、“CA”、“CH”、“CZ”、“DE”、“DK”、“DZ”,“EE”、“ES”、“FI”、“FR”、“GB”、“GR”、“HR”、“HU”、“ID”、“IE”、“IL”、“IN”,“IR”、“IS”、“IT”、“JP”、“KE”、“LI”、“LT”、“LU”、“LV”、“MT”、“MX”、“NL”,“否”、“NZ”、“PL”、“PR”、“PT”、“RO”、“RU”、“SA”、“SE”、“SI”、“TN”、“TW”,“UA”、“US”、“ZA”、“ZM”或“any”。如果使用了“any”,函数将检查是否有任何局部变量匹配。Locale list is validator.isPostalCodeLocales。)。 |
isSurrogatePair(str) | 检查字符串是否包含任何代理项对字符。 |
isURL(str [, options]) | 检查字符串是否为URL。 选项是一个默认为{ 协议:['http','https','ftp',require\u tld:true,require\u协议: false,require\u host:true,require\u valid\u protocol:true, allow\u下划线:false,host\u白名单:false,host\u黑名单:false, allow\u trailing\u dot:false,allow\u protocol\u relative\u url:false, 不允许\u auth:false}。 require\u protocol–如果设置为true,则如果URL中不存在协议,则isURL将返回false。 require\u valid\u protocol–isURL将检查协议选项中是否存在URL的协议。 协议–可以使用此选项修改有效的协议。 require\u host–如果设置为false,isURL将不会检查URL中是否存在主机。 allow\u protocol\u relative\u URL–如果设置为true,则允许使用协议相对URL。 |
isUUID(str [, version]) | 检查字符串是否为UUID(版本3、4或5)。 |
isWhitelisted(str, chars) | 检查字符是否出现在白名单中。 匹配(str,pattern[,modifiers])检查字符串是否与模式匹配。 匹配('foo',/foo/i)或匹配('foo',foo',i')。 |
isJWT(str) | 检查字符串是否为有效的JWT标记。 |
isVariableWidth(str) | 检查字符串是否包含全宽和半宽字符的混合。 |
isSemVer(str) | 检查字符串是否为语义版本控制规范(SemVer)。 |
isCreditCard(str) | 检查字符串是否为信用卡。 |
isIBAN(str) | 检查字符串是否为IBAN(国际银行帐号)。 |
isBIC(str) | 检查字符串是BIC(银行识别码)还是SWIFT代码。 |
isMimeType(str) | 检查字符串是否与有效的MIME类型格式匹配 |
以上转载自 CSDN博主「JackieDYH」的原创文章,遵循CC 4.0 BY-SA版权协议
原文链接:https://blog.csdn.net/JackieDYH/article/details/125161935
添加部分翻译内容,翻译来自【百度翻译】
3.字符串的长度校验
当遇到需要校验长度时,中文、全角等为两个字符,英文、数字等为一个字符,具体定义在Ascii码上,由此判断可以用ascii码的值。常用在utils.js文件中当做公共的方法。
function getByteLength(str) {
let l = 0
for(var i = 0; i < str.length; i ++) {
if(str.charCodeAt(i) > 255) {
l += 2
}else {
l++
}
}
return l
}