正则expression式:允许字母,数字和空格(至less包含一个字母或数字)
我目前正在使用这个正则expression式^[A-Z0-9 _]*$
接受字母,数字,空格和下划线。 我需要修改它以至less要求string中的某个数字或字母。 任何帮助,将不胜感激!
这将用于validation我的网站的用户名。 我真的想支持尽可能多的字符,但只是想确保我防止代码注入和字符将显示所有用户罚款。 所以我明确地打开正则expression式validation的build议,将支持更广泛的字符集。
你只需要指定你当前的RE,然后再跟一个字母/数字,然后是你当前的RE。
^[A-Z0-9 _]*[A-Z0-9][A-Z0-9 _]*$
既然你已经说过他们是Javascript RE,那么在这里有一个有用的网站,你可以在这里对input数据进行REtesting。
如果你还想要小写字母:
^[A-Za-z0-9 _]*[A-Za-z0-9][A-Za-z0-9 _]*$
继续前进,并得到一个点,而不是一再使用这些:
[A-Za-z0-9 _] [A-Za-z0-9]
我有两个(希望更好)replace这两个:
[\w ] [^\W_]
第一个匹配任何单词字符(字母数字和_
,以及Unicode)和空格。 第二个匹配任何不是非单词字符或下划线(仅字母数字以及Unicode)的内容。
如果你不想Unicode的匹配,然后坚持其他的答案。 但是这些在眼睛上看起来更容易(在我看来)。 在撰写本文时采用“首选”的答案,并使用较短的正则expression式给予我们:
^[\w ]*[^\W_][\w ]*$
也许更可读,也许更less。 当然更短。 你的select。
编辑:
就像一个笔记,我在这里假设Perl风格的正则expression式。 您的正则expression式引擎可能支持或不支持\ w和\ W。
编辑2:
testing我的JS正则expression式testing人员链接和一些基本的例子工作正常。 没有做任何广泛的事情,只是想确保\ W和\ W在JS中工作得很好。
编辑3:
试图用JS正则expression式testing者站点testing一些Unicode,我发现这个问题:该页面使用ISO而不是Unicode。 难怪我的日语input不匹配。 哦,那应该不难解决:
<meta http-equiv="Content-Type" content="text/html; charset=utf-8">
或者。 我不知道JavaScript应该做什么,但是我相信这并不困难。
^[ _]*[A-Z0-9][A-Z0-9 _]*$
你可以select在前面有一些空格或下划线,然后你需要一个字母或数字,然后是任意数字,字母,空格或下划线。
只包含空格和下划线的内容将会使[A-Z0-9]
部分失效。
你可以使用一个lookaround :
^(?=.*[A-Za-z0-9])[A-Za-z0-9 _]*$
它会检查string是否有字母或数字,如果是,它将检查其余的字符是否符合您的要求。 这可能可以改善,但似乎与我的testing工作。
更新:
Chris Lutzbuild议添加修改 :
^(?=.*[^\W_])[\w ]*$/
对于我@“^ [\ w] + $”正在工作,允许数字,字母和空格,但是至less需要input一个字母或数字。
这将validation特殊字符和前后空格:
var strString = "Your String"; strString.match(/^[A-Za-z0-9][A-Za-z0-9 ]\*[A-Za-z0-9]\*$/)
$("#ValuationName").bind("keypress", function (event) { if (event.charCode!=0) { var regex = new RegExp("^[a-zA-Z ]+$"); var key = String.fromCharCode(!event.charCode ? event.which : event.charCode); if (!regex.test(key)) { event.preventDefault(); return false; } } });
只要你可以添加到jquery.validationEngine-en.js文件
"onlyLetterNumberSp": { "regex": ^[A-Za-z0-9 _]*[A-Za-z0-9][A-Za-z0-9 _]*$, "alertText": "* No special characters allowed" },
并在文本字段中称为
<input type="text" class="form-control validate[required,custom[onlyLetterNumberSp]]" id="title" name="title" placeholder="Title"/>