只能由“0-9a-zA-Z”和“-”组成,并且“-”不能在头尾出现,长度至少一位。
征求一下广大牛淫的意见。
^([0-9a-zA-Z]{1}[0-9a-zA-Z-]*?[0-9a-zA-Z]{1}|[0-9a-zA-Z]{1})$ /^[0-9a-zA-Z]+([0-9a-zA-z-]+[^-\W_])*$/
其实分开是很简单的事情,没必要非整一个很复杂低效的正则
!/^-/.test(string) && !/-$/.test(string) && /^[0-9a-zA-Z\-]+$/.test(string)
function test($s, $t){ var_dump(preg_match('#^(?!-)[0-9a-zA-Z-]+(?<!-)$#', $s)==$t); } test('a322bc', 1); test('a32--2bc', 1); test('a322bc-', 0); test('-a322bc', 0); test('-a322bc-',0); test('1', 1); test('a', 1); test('sa122a', 1); test('--', 0); test('-', 0);
1 回答4.1k 阅读✓ 已解决
3 回答1.8k 阅读✓ 已解决
2 回答2.2k 阅读✓ 已解决
1 回答1.4k 阅读✓ 已解决
2 回答2.2k 阅读
1 回答590 阅读✓ 已解决
791 阅读
上边的不对,修改一个:
不以 - 开头,且以字母数字结尾,长度可以是1或多。