Javascript 用于接受任意数量的字符和-
有人能给我一个正确的正则表达式来接受以字符开头,以字符结尾的名称吗- 例:ABC或ABC-DEF或ABC-DEF-GHI 但它不应该以- 例:-ABC或-ABC-或ABC- 这是我的正则表达式:Javascript 用于接受任意数量的字符和-,javascript,regex,Javascript,Regex,有人能给我一个正确的正则表达式来接受以字符开头,以字符结尾的名称吗- 例:ABC或ABC-DEF或ABC-DEF-GHI 但它不应该以- 例:-ABC或-ABC-或ABC- 这是我的正则表达式: var regex = /^[A-Za-z]-?[A-Za-z]*-?([A-Za-z]+)+$/ 这对我来说效果很好,但如果我想命名为AB-CD-EF-GH,那么这就不起作用了。 注意:记住名字应该以字符开头,以字符结尾,在这两者之间我可以有两次,但不能有两次。它必须与a-b-c-d等字符相关联您
var regex = /^[A-Za-z]-?[A-Za-z]*-?([A-Za-z]+)+$/
这对我来说效果很好,但如果我想命名为AB-CD-EF-GH,那么这就不起作用了。
注意:记住名字应该以字符开头,以字符结尾,在这两者之间我可以有两次,但不能有两次。它必须与a-b-c-d等字符相关联您可以在内部使用
*
来允许除换行符以外的任意数量的字符:
var regex = /^(?!.*--.*$)[A-Za-z].*[A-Za-z]$/
(?!.*-.*$)
将确保不允许使用双连字符
请检查一下电话号码
功能有效性(str)
{
变量re=/^(?。*?--.*?$)[A-Za-z].[A-Za-z]$/g;
如果((m=re.exec(str))!==null)
返回true;
其他的
返回false;
}
document.getElementById(“res”).innerHTML='RTT--rrtr:'+ValIt('RTT--rrtr')+“
ER#$-wrwrwr:“+ValIt('ER#$-wrwrwrwr')+”
Rfff-ff-d:+ValIt('Rfff-ff-d')代码>
这个简单的正则表达式将为您完成它。请参阅演示
我相信这就是你想要的:
/^[A-Z](-[A-Z]+)*[A-Z]$/i
分析:
/^ Start of string
[A-Z] Any alphabetic character
( Group
- A hyphen character
[A-Z]+ One or more alphabetic characters
)* 0 or more repititons of group
[A-Z] Any alphabetic character
$/i End of string, allow upper or lower case alpha
它不应该像ABC--EFG那样允许多个连字符连在一起,它应该像这个ABC-EFG-hij-esd一样重复。此外,它只能包含没有任何连字符(如ABC)的字符。可选连字符应为optional@Rajesh:你现在能查一下代码吗?如果您在否定的“向前看”中使用--
,则只允许连续连字符。@Rajesh此问题不需要向前看。只需简单操作即可。Lookaheads
费用高昂此匹配也“AB--CD”
感谢您的解释。。。帮助我更好地理解
var rgx = /^[A-Za-z]+(-[A-Za-z]+)*$/;
rgx.test("ABC"); // true
rgx.test("ABC-DEF"); // true
rgx.test("AB-CD-EF-GH"); // true
rgx.test("-AB-CD-EF-GH"); // false
rgx.test("AB-CD-"); // false
rgx.test("AB--CD"); // false
/^[A-Z](-[A-Z]+)*[A-Z]$/i
/^ Start of string
[A-Z] Any alphabetic character
( Group
- A hyphen character
[A-Z]+ One or more alphabetic characters
)* 0 or more repititons of group
[A-Z] Any alphabetic character
$/i End of string, allow upper or lower case alpha