javascript - 需要用Javascript编写正则表达式
问题描述
需要在 javascript 中在有约束的字段上编写正则表达式 -
名称最长可达 80 个字符。它必须以单词字符开头,并且必须以单词字符或''结尾。名称可能包含单词字符或“.”、“-”、“”。
例子 -
允许的字符串 -
abc.'
abc-'.'
ab-.''-a
不允许的字符串 -
rish a
rish.-
到目前为止我已经尝试过:
!/^[A-Za-z.-'']{1,80}$/.test(Name)
解决方案
我想,你正在寻找这样的东西:
^(?=[A-Za-z])[A-Za-z\.\-']{0,79}[A-Za-z']$
解释:
^(?=[A-Za-z])
:检查字符串是否以单词字符开头。这是一个前瞻断言,因此它不会参与比赛。模式的其余部分仍必须至少占 1 个字符,最多 80 个字符。
[A-Za-z\.\-']{0,79}
:第一个和中间字符,因此最多 79 个字符。最后一个字符强制执行最少一个。
[A-Za-z']$
: 以字母或撇号结尾。
推荐阅读
- go - 是否可以使用 twilio-go 客户端库指定出站代理?
- graphql - 客户端的graphql查询成本分析
- extjs - 云服务(扩展 .. 从 VS 部署 - 似乎永远不会完成
- redis - Azure Redis 缓存超时
- asp.net-core - 在 ASP.Net Core 5.0 中,如何将旧的 .aspx webform 路由到 IIS 中托管的控制器操作
- google-apps-script - 如何在列中循环,当某个值被命中时,会根据同一行中的值发送一封电子邮件,并针对设定的范围执行此操作?
- reactjs - 如何使用 Swiper.js 和 React 自定义动态分页子弹样式的过渡动画
- python - 你如何使用 python 找到 Discord.exe?
- gstreamer - 如果 rtph265pay 在 rtph265depay 之前启动,则 GStreamer rtph265pay/rtph265depay 不起作用
- java - 有没有办法将地址与 Google Places API 分开以发表声明?