当前位置:  开发笔记 > 编程语言 > 正文

RegEx for Javascript仅允许使用字母数字

如何解决《RegExforJavascript仅允许使用字母数字》经验,为你挑选了6个好方法。

我需要找到一个只允许使用字母数字的注册表.到目前为止,我尝试的每个人只有在字符串是字母数字时才有效,这意味着包含字母和数字.我只想要一个允许两者的东西而不需要两者.



1> Greg..:
/^[a-z0-9]+$/i

^         Start of string
[a-z0-9]  a or b or c or ... z or 0 or 1 or ... 9
+         one or more times (change to * to allow empty string)
$         end of string    
/i        case-insensitive


[az]与国际字符不匹配.
@Greg,我很高兴您解释与正则表达式相关的答案.在我看来,没有解释的正则表达式是没用的.因为你得到那个一次性的"是的它可行"而且突然,当你需要改变它时,你会立即回来使用不同的用例,而不是真正了解正则表达式*的作用*.另外,比正则表达式文档更容易理解:P
哇 - 我认为我没有完全理解正则表达式,直到它以这种简单的方式被分解.谢谢!
另一种方式是`[^\W_]`但是`[a-z0-9]`/ i是一种显而易见的方式.

2> Volomike..:

如果你想返回一个替换结果,那么这将有效:

var a = 'Test123*** TEST';
var b = a.replace(/[^a-z0-9]/gi,'');
console.log(b);

这将返回:

Test123TEST

请注意,gi是必需的,因为它意味着全局(不仅仅是第一次匹配),而且不区分大小写,这就是为什么我有az而不是a-zA-Z.括号内的^表示"不在这些括号中的任何东西".

警告:如果这正是您想要的,那么字母数字就很棒.但是,如果您在国际市场上使用此类似于某个人的姓名或地理区域,那么您需要考虑unicode字符,这是不可行的.例如,如果你有一个像"Âlvarö"这样的名字,它会使它成为"lvar".


这是一个很好的解释说明。请记住,如果需要,请留出空间。.replace(/ [^ a-z0-9 \] / gi,'')

3> Chase Seiber..:

使用单词class class.以下相当于^[a-zA-Z0-9_]+$:

^\w+$

说明:

^字符串的开头

\ w任何单词字符(AZ,az,0-9,_).

$ end of string

使用/[^\w]|_/g,如果你不想匹配下划线.


\ w实际上等同于[a-zA-Z_0-9],因此您的RegEx也匹配下划线[_].

4> 小智..:
/^([a-zA-Z0-9 _-]+)$/

上面的正则表达式允许字符串中的空格并限制特殊字符.它只允许az,AZ,0-9,Space,Underscore和dash.



5> cletus..:
^\s*([0-9a-zA-Z]*)\s*$

或者,如果您想要至少一个字符:

^\s*([0-9a-zA-Z]+)\s*$

方括号表示一组字符.^是输入的开始.$是输入结束(或换行符,具体取决于您的选项).\ s是空白.

之前和之后的空格是可选的.

括号是分组运算符,允许您提取所需的信息.

编辑:删除了错误使用\ w字符集.



6> Skull..:

这会奏效

^(?=.*[a-zA-Z])(?=.*[0-9])[a-zA-Z0-9]+$

它仅接受alphanumeriuc字符:
测试用例:

dGgs1s23 - valid
12fUgdf  - valid,
121232   - invalid, 
abchfe   - invalid,
 abd()*  - invalid, 
42232^5$ - invalid

要么

你也可以试试这个.这个表达式至少满足一个数字和一个字符,没有其他特殊字符

^(?=.*[0-9])(?=.*[a-zA-Z])([a-zA-Z0-9]+)$

在角度可以测试像:

$scope.str = '12fUgdf';
var pattern = new RegExp('^(?=.*[0-9])(?=.*[a-zA-Z])([a-zA-Z0-9]+)$');
$scope.testResult = pattern.test($scope.str);

PLUNKER DEMO

提到:Angularjs 中字母数字的正则表达式

推荐阅读
ERIK又
这个屌丝很懒,什么也没留下!
DevBox开发工具箱 | 专业的在线开发工具网站    京公网安备 11010802040832号  |  京ICP备19059560号-6
Copyright © 1998 - 2020 DevBox.CN. All Rights Reserved devBox.cn 开发工具箱 版权所有