2011-08-29 91 views
9

我需要一個正則表達式來匹配具有字母,數字,空格和一些簡單標點符號的字符串(.,!"'/$)。我有^[A-Za-z0-9 _]*[A-Za-z0-9][A-Za-z0-9 _]*$,它適用於字母數字和空格,但不是標點符號。非常感謝幫助。使用正則表達式來匹配字符串和字母數字,空格和標點符號

+2

在哪些部分要匹配標點符號?你有什麼嘗試?另外,你是否有任何樣本輸入? – Wiseguy

+0

爲什麼不只是在括號內添加(轉義的)標點符號? – Blazemonger

+0

那麼,該表達式沒有標點符號......當然它不能工作。學習正則表達式的很好的來源:http://www.regular-expressions.info/ –

回答

22

只需添加標點和其他字符內部類(方括號內):

[A-Za-z0-9 _.,!"'/$]* 

這包含空格的每一個字符串匹配,_,字母,數字,逗號,",$ ... 收費注意同時加入一些特殊的字符,也許你需要轉義:more info here

+0

你如何將它融入.test()? – ac360

+0

你的意思是這樣(Javascript提前)? var rgx =/[A-Za-z0-9 _。,!''/ $] * /; rgx.test(「testme」); 或者像這樣:/ [A-Za-z0-9 _ ('testme') – CaNNaDaRk

+0

我剛試過這個 var r =/[A-Za-z0-9 _。,!''/ $] */ r.test(' ¬¬'); 返回true?我是否缺少一些東西 – user2330270

1

從你的正則表達式假設至少一個字母數字字符必須出現在字符串中,那麼我建議如下:

/^(?=.*[A-Z0-9])[\w.,!"'\/$ ]+$/i 

(?=.*[A-Z0-9]) lookahead檢查是否存在一個ASCII字母或數字;嵌套字符類包含所有ASCII字母數字,包括下劃線(\w)和您提到的其他標點字符。斜槓需要被轉義,因爲它也被用作正則表達式分隔符。 /i修飾符使正則表達式不區分大小寫。

1
<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> 
相關問題