2011-08-29 31 views
9

Tôi cần cụm từ thông dụng để khớp các chuỗi có chữ cái, số, dấu cách và một số dấu câu đơn giản (.,!"'/$). Tôi có ^[A-Za-z0-9 _]*[A-Za-z0-9][A-Za-z0-9 _]*$ và nó hoạt động tốt cho cả chữ và số và dấu cách nhưng không có dấu chấm câu. Giúp đỡ được nhiều đánh giá cao.Một regex để đối sánh các chuỗi có chữ và số, dấu cách và dấu chấm câu

+2

Trong đó các phần nào bạn muốn khớp với dấu chấm câu? Bạn đã thử cái gì? Ngoài ra, bạn có bất kỳ đầu vào mẫu nào không? – Wiseguy

+0

Tại sao bạn không chỉ thêm các ký tự dấu chấm câu (đã thoát) bên trong dấu ngoặc vuông? – Blazemonger

+0

Vâng, biểu thức không có dấu chấm câu ... tất nhiên nó không thể hoạt động. Nguồn tuyệt vời cho việc học các cụm từ thông dụng: http://www.regular-expressions.info/ –

Trả lời

22

Chỉ cần thêm dấu chấm câu và các nhân vật khác trong lớp (bên trong dấu ngoặc vuông):

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

này phù hợp với tất cả các chuỗi có chứa khoảng trắng, _, chữ cái và số, dấu phẩy,, ", $, ... Pay chú ý khi thêm một số ký tự đặc biệt, có thể bạn cần phải thoát khỏi họ: more info here

+0

Làm thế nào để bạn phù hợp với điều này thành một .test()? – ac360

+0

Ý bạn là như thế này (Javascript phía trước)? var rgx =/[A-Za-z0-9 _.,! "'/ $] * /; rgx.test (" testme "); Hoặc như sau:/[A-Za-z0-9 _., ! "'/ $] * /. test (" testme ") – CaNNaDaRk

+0

Tôi vừa thử điều này var r =/[A-Za-z0-9 _.,!"'/$] */ r.test (' I '); trả về true? Tôi thiếu một cái gì đó – user2330270

1

Giả sử từ regex của bạn có ít nhất một nhân vật tự chữ và số phải có mặt trong chuỗi, sau đó tôi muốn đề nghị như sau:

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

(?=.*[A-Z0-9]) kiểm tra xem trước sự hiện diện của một chữ cái hoặc chữ số ASCII; lớp nhân vật lồng chứa tất cả các chữ cái ASCII bao gồm dấu gạch dưới (\w) và phần còn lại của các ký tự dấu chấm câu bạn đã đề cập. Dấu gạch chéo cần phải được thoát vì nó cũng được sử dụng như một dấu phân cách regex. Trình sửa đổi /i làm cho trường hợp không phân biệt chữ hoa chữ thường.

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> 
Các vấn đề liên quan