正則中不以某些字符開頭,或者不以某些字符結尾的解決方法

正則中不以某些字符開頭,或者不以某些字符結尾的解決方法

需要解決的問題如下:

名稱校驗中只能包含數字大小字母下劃線和點字符,但是不能以 - 和 點字符開頭,且不能以點字符結尾。

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-.](?<![.])$/
發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章