V2EX = way to explore
V2EX 是一个关于分享和探索的地方
现在注册
已注册用户请  登录
ztc
V2EX  ›  前端开发

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

  •  
  •   ztc ·
    guxuerui · 2018-11-23 15:41:02 +08:00 · 2862 次点击
    这是一个创建于 2199 天前的主题,其中的信息可能已经有所发展或是发生改变。
    2 条回复    2018-11-23 17:09:32 +08:00
    rabbbit
        1
    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
        2
    ztc  
    OP
       2018-11-23 17:09:32 +08:00
    @rabbbit thanks,我试试
    关于   ·   帮助文档   ·   博客   ·   API   ·   FAQ   ·   实用小工具   ·   2637 人在线   最高记录 6679   ·     Select Language
    创意工作者们的社区
    World is powered by solitude
    VERSION: 3.9.8.5 · 22ms · UTC 10:51 · PVG 18:51 · LAX 02:51 · JFK 05:51
    Developed with CodeLauncher
    ♥ Do have faith in what you're doing.