我需要创建一个JS regext,它只允许使用小写字母和下划线(不是在第一个或最后一个)。
例如。 abc_xyz或abcc或abc ____ xyc ___ sss
我正在尝试像
这样的东西/^[a-z]+$/
但不了解如何管理下划线
答案 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
此模式在开始或结束时不允许使用下划线。