正则
2020 年 5 月 29 日 乘法云笔试题
给定字符串 替换[number|string+] input : 'a[3|bc]de' output : 'abcbcbcde'
const out = str.replace(/\[(\d+)\|([a-zA-Z]+)\]/, (a, b, c) => {
return c.repeat(b);
});
常用正则
一、校验数字的表达式
数字:^[0-9]*\$
n 位的数字:^\d{n}\$
至少 n 位的数字:^\d{n,}\$
m-n 位的数字:^\d{m,n}\$
零和非零开头的数字:^(0|[1-9][0-9]*)\$
非零开头的最多带两位小数的数字:^([1-9][0-9]*)+(.[0-9]{1,2})?\$
带 1-2 位小数的正数或负数:^(-)?\d+(.\d{1,2})?\$
正数、负数、和小数:^(-|+)?\d+(.\d+)?\$
有两位小数的正实数:^[0-9]+(.[0-9]{2})?\$
有 1~3 位小数的正实数:^[0-9]+(.[0-9]{1,3})?\$
非零的正整数:^[1-9]\d\$ 或 ^([1-9][0-9]){1,3}$ 或 ^+?[1-9][0-9]*$
非零的负整数:^-[1-9][]0-9"\$ 或 ^-[1-9]\d\$
非负整数:^\d+$ 或 ^[1-9]\d*|0$
非正整数:^-[1-9]\d*|0$ 或 ^((-\d+)|(0+))$
非负浮点数:^\d+(.\d+)?$ 或 ^[1-9]\d.\d|0.\d[1-9]\d|0?.0+|0$
非正浮点数:^((-\d+(.\d+)?)|(0+(.0+)?))$ 或 ^(-([1-9]\d.\d|0.\d[1-9]\d))|0?.0+|0$
正浮点数:^[1-9]\d.\d|0.\d[1-9]\d$ 或 ^(([0-9]+.[0-9][1-9][0-9])|([0-9][1-9][0-9].[0-9]+)|([0-9][1-9][0-9]))$
负浮点数:^-([1-9]\d.\d|0.\d[1-9]\d)$ 或 ^(-(([0-9]+.[0-9][1-9][0-9])|([0-9][1-9][0-9].[0-9]+)|([0-9][1-9][0-9])))$
浮点数:^(-?\d+)(.\d+)?$ 或 ^-?([1-9]\d.\d|0.\d[1-9]\d|0?.0+|0)$