2023/05/06-笔记

96 阅读3分钟

string.localeCompare(target)

比较两个字符串的排列顺序(标准是unicode编码)

返回值

返回说明比较结果的数字。

如果 *string* 小于 *target*,则 `localeCompare()` 返回小于 0 的数(-1)。

如果 *string* 大于 *target*,则该方法返回大于 0 的数(1)。

如果两个字符串相等,或根据本地排序规则没有区别,该方法返回 0。

栗子

let text1 = "A";
let text2 = "a";
let result = text1.localeCompare(text2); 
console.log('result',result)
// result 1

let text1 = "a";
let text2 = "A";
let result = text1.localeCompare(text2);
console.log('result',result)
// result -1

let text1 = "A";
let text2 = "C";
let result = text1.localeCompare(text2); 
console.log('result',result)
// result -1

let text1 = "c";
let text2 = "b";
let result = text1.localeCompare(text2);
console.log('result',result)
// result 1

let text1 = "c";
let text2 = "c";
let result = text1.localeCompare(text2);
console.log('result',result)
// result 0

string.toLowerCase()

将字符串所有字母转成小写

AntD-Select组件

 <Select 
     showSearch 
     placeholder="请选择流程状态" 
     optionFilterProp="children" 
     filterOption={(input, option) => (option!.children as unknown as string).includes(input)} 
     filterSort={(optionA, optionB) => 
        (optionA!.children as unknown as string)
        .toLowerCase()
        .localeCompare((optionB!.children as unknown as string).toLowerCase())}>
     <Select.Option value="1525">A</Select.Option>
     <Select.Option value="1527">B</Select.Option>
     <Select.Option value="1527">C</Select.Option>
  </Select>
标题
showSearch配置是否可搜索boolean单选为 false,多选为 true
optionFilterProp搜索时过滤对应的 option 属性,如设置为 children 表示对内嵌内容进行搜索。若通过 options 属性配置选项内容,建议设置 optionFilterProp="label" 来对内容进行搜索。stringvalue
filterOption是否根据输入项进行筛选。当其为一个函数时,会接收 inputValue option 两个参数,当 option 符合筛选条件时,应返回 true,反之则返回 falseboolean or function(inputValue, option)true
filterSort搜索时对筛选结果项的排序函数, 类似Array.sort里的 compareFunction(optionA: Option, optionB: Option) => number-

正则表达式汇总

验证数字:/^[0-9]*$/
验证n位的数字:/^\d{n}$/
验证至少n位数字:/^\d{n,}$/
验证m-n位的数字:/^\d{m,n}$/
验证零和非零开头的数字:/^(0|[1-9][0-9]*)$/
验证有两位小数的正实数:/^[0-9]+(.[0-9]{2})?$/
验证有1-3位小数的正实数:/^[0-9]+(.[0-9]{1,3})?$/
验证非零的正整数:/^\+?[1-9][0-9]*$/
验证非零的负整数:/^\-[1-9][0-9]*$/
验证非负整数(正整数 + 0)/ ^\d+$/
验证非正整数(负整数 + 0) /^((-\d+)|(0+))$/
验证长度为3的字符:/^.{3}$/
验证由26个英文字母组成的字符串:/^[A-Za-z]+$/
验证由26个大写英文字母组成的字符串:/^[A-Z]+$/
验证由26个小写英文字母组成的字符串:/^[a-z]+$/
验证由数字和26个英文字母组成的字符串:/^[A-Za-z0-9]+$/
验证由数字、26个英文字母或者下划线组成的字符串:/^\w+$/
验证用户密码:^[a-zA-Z]\w{5,17}$ 正确格式为:以字母开头,长度在6-18之间,只能包含字符、数字和下划线。
验证是否含有 ^%&',;=?$\" 等字符:[^%&',;=?$\x22]+
验证汉字:/^[\u4e00-\u9fa5],{0,}$/
验证Email地址:/^([a-zA-Z0-9]+[_|\_|\.]?)*[a-zA-Z0-9]+@([a-zA-Z0-9]+[_|\_|\.]?)*[a-zA-Z0-9]+\.[a-zA-Z]{2,3}$/
验证InternetURL:/^http://([\w-]+\.)+[\w-]+(/[\w-./?%&=]*)?$ ;^[a-zA-z]+://(w+(-w+)*)(.(w+(-w+)*))*(?S*)?$/
验证电话号码:/^(\(\d{3,4}\)|\d{3,4}-)?\d{7,8}$/
验证身份证号(15位或18位数字):/^\d{15}|\d{}18$/
验证一年的12个月:/^(0?[1-9]|1[0-2])$/ 
验证一个月的31天:/^((0?[1-9])|((1|2)[0-9])|30|31)$ /
整数:/^-?\d+$/
非负浮点数(正浮点数 + 0):/^\d+(\.\d+)?$/
正浮点数: /^(([0-9]+\.[0-9]*[1-9][0-9]*)|([0-9]*[1-9][0-9]*\.[0-9]+)|([0-9]*[1-9][0-9]*))$/
非正浮点数(负浮点数 + 0):/ ^((-\d+(\.\d+)?)|(0+(\.0+)?))$/
负浮点数:/ ^(-(([0-9]+\.[0-9]*[1-9][0-9]*)|([0-9]*[1-9][0-9]*\.[0-9]+)|([0-9]*[1-9][0-9]*)))$/
浮点数: /^(-?\d+)(\.\d+)?$/

JSON.parse()

将Json格式的数据转换为Objecct格式,一般用于调用后端接口对返回的数据做处理。
例如我们从服务器接收了以下数据:

{ "name":"runoob", "alexa":10000, "site":"www.runoob.com" }

我们使用 JSON.parse() 方法处理以上数据,将其转换为 JavaScript 对象:

const obj = JSON.parse('{ "name":"runoob", "alexa":10000, "site":"www.runoob.com" }');
// {name: 'runoob', alexa: 10000, site: 'www.runoob.com'}

JOSN.stringfy()

例如我们向服务器发送以下数据:

var obj = { name:"runoob", alexa:10000, site:"www.runoob.com"};

我们使用 JSON.stringify() 方法处理以上数据,将其转换为字符串:

var myJSON = JSON.stringify(obj);
// {"name":"runoob","alexa":10000,"site":"www.runoob.com"}

Input 使用技巧总结

点一哈传过去

exceljs库

读取、操作电子表格数据和样式并将其写入 XLSXJSON。
作为项目从 Excel 电子表格文件逆向工程
    import ExcelJS, { Column } from 'exceljs';
    ...
    // 创建工作簿
    const workbook = new ExcelJS.Workbook();
    // 设置属性
    workbook.title = WORKFLOW_NAME + '导入模板';
    workbook.created = new Date();
    workbook.modified = new Date();
    workbook.lastPrinted = new Date();
    // 添加表addWorksheet
    const sheet = workbook.addWorksheet('表名');

中文npm文档:exceljs中文文档