使用正则表达式来匹配字符串和字母数字,空格和标点符号
我需要一个正则表达式来匹配具有字母,数字,空格和一些简单标点符号的字符串(.,!"'/$
)。我有^[A-Za-z0-9 _]*[A-Za-z0-9][A-Za-z0-9 _]*$
,它适用于字母数字和空格,但不是标点符号。非常感谢帮助。使用正则表达式来匹配字符串和字母数字,空格和标点符号
只需添加标点和其他字符内部类(方括号内):
[A-Za-z0-9 _.,!"'/$]*
这包含空格的每一个字符串匹配,_,字母,数字,逗号,",$ ... 收费注意同时加入一些特殊的字符,也许你需要转义:more info here
你如何将它融入.test()? – ac360
你的意思是这样(Javascript提前)? var rgx =/[A-Za-z0-9 _。,!''/ $] * /; rgx.test(“testme”); 或者像这样:/ [A-Za-z0-9 _ ('testme') – CaNNaDaRk
我刚试过这个 var r =/[A-Za-z0-9 _。,!''/ $] */ r.test(' ¬¬'); 返回true?我是否缺少一些东西 – user2330270
从你的正则表达式假设至少一个字母数字字符必须出现在字符串中,那么我建议如下:
/^(?=.*[A-Z0-9])[\w.,!"'\/$ ]+$/i
(?=.*[A-Z0-9])
lookahead检查是否存在一个ASCII字母或数字;嵌套字符类包含所有ASCII字母数字,包括下划线(\w
)和您提到的其他标点字符。斜杠需要被转义,因为它也被用作正则表达式分隔符。 /i
修饰符使正则表达式不区分大小写。
<script type="text/javascript">
check("hello dfdf asdjfnbusaobfdoad fsdihfishadio fhsdhf iohdhf");
function check(data){
var patren=/^[A-Za-z0-9\s]+$/;
if(!(patren.test(data))) {
alert('Input is not alphanumeric');
return false;
}
alert(data + " is good");
}
</script>
在哪些部分要匹配标点符号?你有什么尝试?另外,你是否有任何样本输入? – Wiseguy
为什么不只是在括号内添加(转义的)标点符号? – Blazemonger
那么,该表达式没有标点符号......当然它不能工作。学习正则表达式的很好的来源:http://www.regular-expressions.info/ –