正则中不以某些字符开头,或者不以某些字符结尾的解决方法

需要解决的问题如下:

名称校验中只能包含数字大小字母下划线和点字符,但是不能以 - 和 点字符开头,且不能以点字符结尾。

1.不以某些字符开头

正则的正常开头和结尾分别是 ^ 和 $ 符号 ,^ 表示这个正则开始了,$ 则表示这个正则到此结束。
js中定义一个正则:

1. let reg = /^[a-zA-Z0-9]$/  
2. let regObj = new RegExp('^[a-zA-Z0-9]$')

而不以某个字符开头则是
^(?! str)
这里使用了下面几个元符号:

  1. ^ 判断是否是开头
  2. ?! 这里是否定向前查询

例如不能使用-.开头 则正则的开始表示应该如下:

let nameReg = /^(?![-.])[a-zA-Z-.0-9]/

2.不以某些字符结尾

不能以某些字符结尾和不能以某些字符开头非常相似。
(?<!str)
这里用了如下几个符号:

  1. ?<! 否定式向后查询
  2. $ 是否结尾

所以上边的正则就如下:

let  nameReg = /^(?![-.])[0-9a-zA-Z-.](?<![.])$/
Logo

AtomGit 是由开放原子开源基金会联合 CSDN 等生态伙伴共同推出的新一代开源与人工智能协作平台。平台坚持“开放、中立、公益”的理念,把代码托管、模型共享、数据集托管、智能体开发体验和算力服务整合在一起,为开发者提供从开发、训练到部署的一站式体验。

更多推荐