我正在使用此代码,但它无法正常使用 - (主电源)符号
^\b\w{1,}(_\.-)?\w\b$ or ^\b\w{1,}(_\.\-)?\w\b$
如果字符串是这样的话,则上面的代码不起作用:name-name
我想用这段代码做的是: 名称大部分以字母数字和aslo结尾开头,它可以有这个符号(.- _),但只能在中间
name => true
Name_ => false
Name_sa => true
name._ => false
name.-as => false
答案 0 :(得分:4)
我认为应该这样做:
^[^\W_]+([_.-][^\W_]+)?$
此处[^\W_]
仅匹配除非字字符和_
之外的任何字符,因此基本上除了_
之外的任何单词字符。这是必要的,因为\w
确实包含_
。
答案 1 :(得分:1)
正则表达式有两个主要问题:
此外,代替{1,},你也可以使用+,这使它更具可读性。所以这个正则表达式应该达到你想要的效果:
/ ^ \ B \ W [\ W _.-] * \ W \ B $ /
答案 2 :(得分:0)
name-name
应该有效。如果您需要name.-as
之类的内容,则需要将?
更改为*
以允许中间包含多个字符。