首页
学习
活动
专区
圈层
工具
发布
首页
学习
活动
专区
圈层
工具
MCP广场
社区首页 >问答首页 >可选的前导斜杠的正则表达式

可选的前导斜杠的正则表达式
EN

Stack Overflow用户
提问于 2010-01-22 11:39:19
回答 2查看 1.3K关注 0票数 1

我需要验证运输集装箱编号。有一个行业标准说,只有字母数字和11个字符的长度是可接受的。例如: FBXU8891735

但是,也有一个标准的行业惯例,即前4个字符可以是正斜杠,例如:/8891735

我有两个要求-首先要验证集装箱编号(例如:matches()),然后清除容器编号(例如,replaceAll()

代码语言:javascript
运行
复制
System.out.println("MSCU3720090".matches("[a-zA-Z0-9]{11}"));    //true - ok
System.out.println("////3720090".matches("[a-zA-Z0-9]{11}"));    //false - fail

System.out.println("MSCU3720090".replaceAll("[^a-zA-Z0-9]*", ""));   //MSCU3720090 - ok
System.out.println("////3720090".replaceAll("[^a-zA-Z0-9]*", ""));   //3720090 - fail

我知道对于matches(),我可以使用替代方法,例如:

代码语言:javascript
运行
复制
[a-zA-Z0-9]{11}|////[a-zA-Z0-9]{7}

然而,这看起来很丑陋,我不确定如何将其用于replaceAll()。

有没有人能建议一个更好的正则表达式来满足这两个需求(或者每个需求一个)?

谢谢。

EN

回答 2

Stack Overflow用户

回答已采纳

发布于 2010-01-22 11:43:49

代码语言:javascript
运行
复制
"((?:[a-zA-Z0-9]{4}|/{4})[a-zA-Z0-9]{7})"

然后,只需检查捕获组1的内容中的编号。

票数 1
EN

Stack Overflow用户

发布于 2014-09-29 17:24:57

如果有人想要正确确认货物集装箱号ISO6346,请参考my Javascript classPatrik Storm's PHP Class

票数 0
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/2114770

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档