正则表达式 匹配全数字或全字母,或数字和字母组合,排除特殊字符

作者&投稿:宇文古 (若有异议请与网页底部的电邮联系)
求一个正则表达式,要求由数字和字母或者数字和特殊符号组成~

首先,要明确允许那些特殊符号,及白名单。
下面代码中 [!@#$%^&*]替换成你的特殊字符。
var p=/^(?=.*[0-9])((?=.*[a-z])[0-9a-z]+|(?=.*[!@#$%^&*])[0-9!@#$%^&*]+)$/ig;var b=p.test("234@#23sdf"); //false, 英文和特殊字符同时存在var b=p.test("234"); //false, 只有数字var b=p.test("$#234@#23"); //true, 数字和特殊字符var b=p.test("sf24da23df"); //true, 数字和英文

用一个表达式太难,拆成两步判断就很容易了。

JavaScript的例子:

var str = 'test@ABC123';
if(/^[\w\W]{6,18}$/.test(str) && str.replace(/[a-z0-9]/ig, '').length == 1) {
alert('合法');
} else {
alert('不合法');
}

匹配全数字或全字母,或数字和字母组合的正则表达式 ^[0-9a-zA-Z]+$

我给你一个Javascript语言的例子,你看看吧

<script type=text/javascript>

 var str="123abc";

 var regex=/^[0-9a-zA-Z]+$/;

 var result=regex.test(str);

 alert(result);

</script>


运行结果
true



衡东县18848974397: 正则表达式中的或怎么表示?比如我要3位字母,或者5位数字.怎么写表达式?比如我要匹配:3位字母,或者5位数字.这个或,怎么表示.新手,求教, -
主怎先倍:[答案] 竖线“|”就是或的意思. ([a-zA-Z]{3}|[0-9]{5}) 这个就是三位字母或五位数字的意思,如果你的正则引擎支持类别名,可以用 \d 表示数字,就不用 [0-9] 了,字母也可以用类名来代替.

衡东县18848974397: 求一个验证密码的正则表达式.只能为数字,字母,或键盘上的特殊字符.可以是纯数字或字母. -
主怎先倍: 1、正则表达式验证数字、字母、特殊字符的组合,这个要求3者都有 var reg=/(?=.*[a-z])(?=.*\d)(?=.*[#@!~%^&*])[a-z\d#@!~%^&*]{8,16}/i 特殊 字符 为~!@#$%^&*其中之一2、正则表达式验证(数字+字母)或者(数字+特殊字符)或者(字母+特殊字符),不能是纯数字、纯字母、纯特殊字符,即只要符合这3个组合其中之一都为true var reg=/((?=.*[a-z])(?=.*\d)|(?=[a-z])(?=.*[#@!~%^&*])|(?=.*\d)(?=.*[#@!~%^&*]))[a-z\d#@!~%^&*]{8,16}/i

衡东县18848974397: 正则表达式中的或怎么表示?比如我要3位字母,或者5位数字.怎么写表达式?谢谢大家了 -
主怎先倍: 竖线“|”就是或的意思. ([a-zA-Z]{3}|[0-9]{5}) 这个就是三位字母或五位数字的意思,如果你的正则引擎支持类别名,可以用 \d 表示数字,就不用 [0-9] 了,字母也可以用类名来代替.

衡东县18848974397: 求正则表达式 要求数字和字母必须都出现一次或以上 -
主怎先倍: .*\d.*[a-zA-Z]|.*[a-zA-Z].*\d

衡东县18848974397: 正则表达式匹配问题 请问如何匹配一下字符串? xx:xx:xx:xx:xx:xx xx:数字和字母的组合 -
主怎先倍: [0-9]+(?=[^0-9]*$)这样可以匹配字符串最后面的数字.字符串主要用于编程,概念说明、函数解释、用法详述见正文,这里补充两点:1.Free Pascal中的Ansistring只能看成整体,很多函数无法使用,就算是提取单个元素也很麻烦,所以除非万不得已就不要用;2.字符串在存储上类似字符数组,所以它每一位的单个元素都是可以提取的,如s=“abcdefghij”,则s[1]=“a”,s[10]="j",而字符串的零位正是它的长度,如s[0]=10(※上述功能Ansistring没有.),这可以给我们提供很多方便,如高精度运算时每一位都可以转化为数字存入数组.

衡东县18848974397: 怎么用正则表达式去匹配一串数字字符 -
主怎先倍: 表达式:^;.* 作用是匹配“;”开头的整行,其中:^是匹配开头,;是匹配;.匹配任意字符(多行模式中除回车换行),.*表示任意字符出现任意多次 如果需要半角的话,把表达式中的“;”换成“;”即可

衡东县18848974397: js正则表达式怎样写匹配连续的字符串(如:123456)和重复的字符串(如:111111)? -
主怎先倍: 匹配连续的字符串,可以比较ASCII码值是否连续.正则表达式,不知道怎么写.<br>var lineFlag = false; <br>var re =/^[0-9]{1,20}$/g;<br>var re1 = /^[a-z]{1,20}$/g;<br>var re2 = /^[A-Z]{1,20}$/g; <br>//如果是全数字或全字母 <br>if(re.test(pwd) || re1...

衡东县18848974397: js正则表达式匹配英文字母跟数字的要怎么写 -
主怎先倍: 你好,首先问题描述其实不是很清楚,我分情况给题主作答.// 测试字符串 var str = 'Adobe InDesign、Microsoft Word 等对中文与西文(这里用「西文」来泛指用空格分词的外文)混合排版支持较好的软件,都默认增大汉字和西文的间距....

衡东县18848974397: 密码由数字、字母和特殊字符('^'、'|'和'\'除外)的组合 这样的密码验证用正则表达式怎么写? -
主怎先倍: [a-zA-Z0-9]+ 看你想要加上什么特殊字符了,可以列上去,比如: [a-zA-Z0-9#@!~-',]+ 还有你要确定你的密码要有多少个字符范围.

衡东县18848974397: 正则表达式怎么匹配除过汉字、字母、数字外的所有特殊字符? -
主怎先倍: 让我好找啊,特别是汉字匹配,给你了:^[^_][a-zA-Z0-9_\u4e00-\u9fa5][^_]$如果是任意多个字符可在外面加限定符,如:^[^_][a-zA-Z0-9_\u4e00-\u9fa5]*[^_]$

本站内容来自于网友发表,不代表本站立场,仅表示其个人看法,不对其真实性、正确性、有效性作任何的担保
相关事宜请发邮件给我们
© 星空见康网