正则(js):最多 10 个字符,允许输入汉字、半角数字、半角字母,标点符号,但不能输<>()和表情,怎么搞

2018-11-23 15:41:02 +08:00
 ztc
2685 次点击
所在节点    前端开发
2 条回复
rabbbit
2018-11-23 16:47:25 +08:00
function t(str) {
const reg1 = /^([\u0000-\u007F]|[\u4E00-\u9FCC\u3400-\u4DB5\uFA0E\uFA0F\uFA11\uFA13\uFA14\uFA1F\uFA21\uFA23\uFA24\uFA27-\uFA29]|[\ud840-\ud868][\udc00-\udfff]|\ud869[\udc00-\uded6\udf00-\udfff]|[\ud86a-\ud86c][\udc00-\udfff]|\ud86d[\udc00-\udf34\udf40-\udfff]|\ud86e[\udc00-\udc1d]){0,10}$/;
const reg2 = /[()<>]+/;
if (reg1.test(str) && (!reg2.test(str))) {
return true;
} else {
return false;
}
}

console.log(t('1234567890') === true)
console.log(t('12345678901') === false)
console.log(t('azAZ') === true)
console.log(t('niconiconico') === false)
console.log(t('全') === true)
console.log(t('()') === false)
console.log(t('<>') === false)
console.log(t(`!"#$%&*+,.`) === true)
console.log(t(`𠀐𠀐𠀐𠀐𠀐𠀐𠀐𠀐𠀐𠀐`) === true)
console.log(t(`𠀐𠀐𠀐𠀐𠀐𠀐𠀐𠀐𠀐𠀐𠀐`)=== false)
console.log(t('。') === false)
console.log(t(',') === false)
console.log(t('”') === false)
console.log(t(':') === false)
console.log(t('¥') === false)
console.log(t('『') === false)
ztc
2018-11-23 17:09:32 +08:00
@rabbbit thanks,我试试

这是一个专为移动设备优化的页面(即为了让你能够在 Google 搜索结果里秒开这个页面),如果你希望参与 V2EX 社区的讨论,你可以继续到 V2EX 上打开本讨论主题的完整版本。

https://www.v2ex.com/t/510816

V2EX 是创意工作者们的社区,是一个分享自己正在做的有趣事物、交流想法,可以遇见新朋友甚至新机会的地方。

V2EX is a community of developers, designers and creative people.

© 2021 V2EX