任何人都可以给我正确的正则表达式来接受以字符开头和以字符结尾的名称,在中间我可以允许 - 例如: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 这样的字符相关联
最佳答案
^[A-Za-z]+(?:-[A-Za-z]+)*$
这个简单的正则表达式将为您完成。查看演示。
https://regex101.com/r/sJ9gM7/55
var re = /^[A-Za-z]+(?:-[A-Za-z]+)*$/gim;
var str = 'ABC\nABC-DEF\n-ABC\nABC-\nAB-CD-EF-GH\n';
var m;
if ((m = re.exec(str)) !== null) {
if (m.index === re.lastIndex) {
re.lastIndex++;
}
// View your result using the m-variable.
// eg m[0] etc.
}
关于javascript - 接受任意数量字符的正则表达式和 -,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/29487793/