JS正则表达式允许使用小写字母和下划线(介于两者之间)

时间:2017-12-14 12:47:25

标签: javascript regex angular

我需要创建一个JS regext,它只允许使用小写字母和下划线(不是在第一个或最后一个)。

  

例如。 abc_xyz或abcc或abc ____ xyc ___ sss

我正在尝试像

这样的东西
/^[a-z]+$/

但不了解如何管理下划线

2 个答案:

答案 0 :(得分:3)

您可以使用

/^[a-z]+(?:_+[a-z]+)*$/

请参阅regex demo。如果字母之间只有_,请将_+替换为_(在+之后删除_

模式详情

  • ^ - 字符串开头
  • [a-z]+ - 1+小写ASCII字母
  • (?:_+[a-z]+)* - 0+序列:
    • _+ - 1 + _个字符
    • [a-z]+ - 1+小写ASCII字母
  • $ - 字符串结束。

答案 1 :(得分:0)

/^[a-z]+_*[a-z]+$/.test('abc_xyz')
true
/^[a-z]+_*[a-z]+$/.test('_abc_xyz')
false
/^[a-z]+_*[a-z]+$/.test('abc_xyz_')
false
/^[a-z]+_*[a-z]+$/.test('abc____xyz')
true
/^[a-z]+_*[a-z]+$/.test('abcxyz')
true

此模式在开始或结束时不允许使用下划线。