You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

正则表达式校验需求:需匹配#开头后跟8位数字的字符串

修复自行车序列号的正则匹配问题

你的需求是匹配以#开头、紧跟8位数字的格式(比如#00000001),但当前的正则表达式有个小问题:

原正则/^#\d{8}*$/里的*是多余的——\d{8}已经明确表示必须匹配恰好8位数字,后面加*会变成“8位数字出现0次或多次”,这会导致像#(只有#没有数字)、#123456789(超过8位)这类不符合要求的字符串也能通过校验。

正确的正则写法

把多余的*去掉,改成:

let regBikeno = /^#\d{8}$/;
  • ^:匹配字符串的开始
  • #:匹配开头的#符号
  • \d{8}:严格匹配8位数字
  • $:匹配字符串的结束

这样就能确保输入的内容完全符合#+8位数字的格式了。

修改后的完整代码

let bikeno = $('input:text[name=bikeno]').val().trim();
let regBikeno = /^#\d{8}$/;
if(!regBikeno.test(bikeno)) {
    alert("请正确输入自行车序列号。");
    return false;
}

内容的提问来源于stack exchange,提问作者Kang Hyeongu

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.05.11 07:53:59