开发者

A regex to match strings with alphanumeric, spaces and punctuation

开发者 https://www.devze.com 2023-04-01 01:50 出处:网络
I need a regular expression to match strings that have letters, numbers, spaces and some simple punctuation (.,!\"\'/$).I have ^[A-Za-z0-9 _]*[A-Za-z0-9][A-Za-z0-9 _]*$ and it works well for alphanume

I need a regular expression to match strings that have letters, numbers, spaces and some simple punctuation (.,!"'/$). I have ^[A-Za-z0-9 _]*[A-Za-z0-9][A-Za-z0-9 _]*$ and it works well for alphanumeri开发者_高级运维c and spaces but not punctuation. Help is much appreciated.


Just add punctuation and other characters inside classes (inside the square brackets):

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

This matches every string containing spaces, _, alphanumerics, commas, !, ", $, ... Pay attention while adding some special characters, maybe you need to escape them: more info here


Assuming from your regex that at least one alphanumeric character must be present in the string, then I'd suggest the following:

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

The (?=.*[A-Z0-9]) lookahead checks for the presence of one ASCII letter or digit; the nest character class contains all ASCII alphanumerics including underscore (\w) and the rest of the punctuation characters you mentioned. The slash needs to be escaped because it's also used as a regex delimiter. The /i modifier makes the regex case-insensitive.


<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>
0

精彩评论

暂无评论...
验证码 换一张
取 消