JS Regexp用于短名称

时间:2011-01-18 12:22:17

标签: javascript regex

我在regexp表达式上非常糟糕..

我尝试了不同的东西,没有任何效果。 :(

我只是想验证某人的短名称是否可以添加为我的网站的网址,例如mysite.com/shortname

要做到这一点,我绝对需要确保它不包含空格,重音,特殊字符......实际上是juste [a-z]。

我试过这个,但徒劳无功:

 function isShortValid(shortcode){
        var pattern = new RegExp(/^([a-z]?$)/i);
        return pattern.test(shortcode);
    }

3 个答案:

答案 0 :(得分:5)

您不需要捕获组。只需使用此正则表达式来测试您的字符串。

/^[a-z]+$/i

这里更大的问题当然是:

是否可以在系统中输入无效的短名称而不会在输入上出现验证错误?

因为如果可能的话,你将不得不求助于其他一些正则表达式,它会删除你喜欢的无效字符,并在创建URL时创建一个正确的短名称。该URL参数当然应该只是一个虚拟段(类似于stackoverflow)。使用不可更改且无法使用无效值的直接用户ID总是明智的,因为它们是由系统生成的。

这两个链接的工作原理相同:

https://stackoverflow.com/users/75642/robert-koritnik
https://stackoverflow.com/users/75642

第一个包含名称,但它是一个虚拟的人性化URL段,可以随时更改。另一方面,ID将始终保持不变。

如何实例化正则表达式

您可以直接实例化正则表达式

var rx = /^[a-z]+$/i;

或使用构造函数

var rx = new RegExp("^[a-z]+$", "i");

不要在构造函数初始化中使用斜杠,除非它们是正则表达式的一部分。

答案 1 :(得分:1)

尝试将正则表达式更改为

var pattern = new RegExp('/^[a-z]+$/i');

答案 2 :(得分:0)

这个完美无缺。我也添加了一些数字字符

function isShortValid(shortcode){
        var pattern = new RegExp(/^[a-z_0-9]+$/i);
        return pattern.test(shortcode);
    }
编辑:感谢您的所有评论和帮助,我使用了这个完美的!谢谢!

function isShortValid(shortcode){return /^\w+$/.test(shortcode);}