我在regexp表达式上非常糟糕..
我尝试了不同的东西,没有任何效果.:(
我只是想验证某人的短名称可以添加为我的网站的网址,如mysite.com/shortname
要做到这一点,我绝对需要确保它不包含空格,重音,特殊字符......事实上,juste [az].
我试过这个,但是徒劳无功:
function isShortValid(shortcode){
var pattern = new RegExp(/^([a-z]?$)/i);
return pattern.test(shortcode);
}
Run Code Online (Sandbox Code Playgroud)
您不需要捕获组.只需使用此正则表达式来测试您的字符串.
/^[a-z]+$/i
Run Code Online (Sandbox Code Playgroud)
这里更大的问题当然是:
是否可以在系统中输入无效的短名称而不会在输入上出现验证错误?
因为如果可能的话,你将不得不求助于其他一些正则表达式,它会删除你喜欢的无效字符,并在创建URL时创建一个正确的短名称.该URL参数当然应该只是一个虚拟段(类似于stackoverflow).使用不可更改且无法使用无效值的直接用户ID始终是明智的,因为它们是由系统生成的.
这两个链接的工作原理相同:
/sf/users/5294971/
/sf/users/5294971/
第一个包含名称,但它是一个虚拟的人性化URL段,可以随时更改.另一方面,ID将始终保持不变.
您可以直接实例化正则表达式
var rx = /^[a-z]+$/i;
Run Code Online (Sandbox Code Playgroud)
或者使用构造函数
var rx = new RegExp("^[a-z]+$", "i");
Run Code Online (Sandbox Code Playgroud)
除非它们是正则表达式的一部分,否则不要在构造函数初始化中使用斜杠.