2

我正在使用这个 RexExp 代码var userIdPattern = new RegExp('^([A-z0-9_.]{4,15})$');,我想检查最后一个字符是否是点 ( .) 然后.test()返回我false

var userIdPattern = new RegExp('^([A-z0-9_.]{4,15})$');
console.log(userIdPattern.test('Omid.my.')); // -> I need this to be false

在这种情况下返回我true

userIdPattern.test('Omid.my'); //-> true
4

2 回答 2

5

更新后,更合适的正则表达式可能是:

var userIdPattern = new RegExp('^([A-Za-z0-9\[\]\\^`][A-z0-9_.]{2,13}[A-Za-z0-9\[\]\\^`])$');

也就是说,如果您想在他的评论中提到的 7stud 等用户名中包含其他特殊字符,并且只从第一个和最后一个字符中排除.和。_

否则,为了防止这些字符,我建议:

var userIdPattern = new RegExp('^([A-Za-z0-9][A-Za-z0-9_.]{2,13}[A-Za-z0-9])$');

小提琴进行测试。

于 2013-08-11T12:49:43.483 回答
4

你可以这样

^([A-z0-9_.]{3,14}[A-z0-9])$

阅读您的评论后编辑

^[a-z0-9][a-z0-9_.]{2,13}[a-z0-9]$

预习

另外我建议你使用标志i来忽略大小写:

var userIdPattern = new RegExp('^[a-z0-9][a-z0-9_.]{3,13}[a-z0-9]$', 'i');
于 2013-08-11T12:42:58.800 回答