if (typeof item.value === 'string') {
//字符串中可以包含中英文逗号,且只能由数字或者数字和中英文逗号组成,且中英文逗号前后必须有数字
const regex = /^(\d+[,\uFF0C])*?\d+$/;
if (!regex.test(item.value)) {
message.error('搜索输入无效!请输入数字,多个值搜索请用逗号分割');
return 'Invalid input';
} else {
//把中文逗号转换成英文逗号
const replacedString = item.value.replace(/,/g, ',');
item.value = replacedString.split(',');
}
}
判断字符串中是否仅由数字或者中英文逗号组成
function isValidString(str: string): boolean {
const regex = /^[\d,,]+$/;
return regex.test(str);
}
// 示例用法
console.log(isValidString("12345")); // 输出: true
console.log(isValidString("12,34,56")); // 输出: true
console.log(isValidString("123,abc")); // 输出: false
console.log(isValidString("abc")); // 输出: false
console.log(isValidString("12,34,56.")); // 输出: false
在上述示例中,我们使用正则表达式 /^[\d,,]+$/
进行匹配。该正则表达式具有以下含义:
^
:表示字符串的开头。[\d,,]+
:表示由数字(\d
)或中英文逗号(,
、,
)组成,并且至少出现一次。$
:表示字符串的结尾。