我正在寻找一个允许在 JavaScript/jQuery 中使用字母数字字符、-、_ 或空格的正则表达式。我尝试谷歌搜索,但无法找到。
谁能帮我解决这个问题?
提前致谢。
我正在寻找一个允许在 JavaScript/jQuery 中使用字母数字字符、-、_ 或空格的正则表达式。我尝试谷歌搜索,但无法找到。
谁能帮我解决这个问题?
提前致谢。
字符集将在这里大有帮助。您要为要验证的字符创建匹配集:
\w
中的相同(其他语言可能不同)。[A-Za-z0-9_]
-
和空格,可以组合成一个匹配的集合,例如[\w\- ]
. 但是,您可能需要考虑使用\s
而不是仅使用空格字符(\s
也匹配制表符和其他形式的空格)
-
,\-
以便正则表达式引擎不会将其与字符范围混淆,例如A-Z
^
来确保整个字符串匹配$
您可能正在寻找的完整正则表达式是:
/^[\w\-\s]+$/
(注意表示+
必须至少有一个字符才能匹配;*
如果零长度字符串也可以,请使用 a 代替)
最后,http://www.regular-expressions.info/是一个很棒的参考
奖励积分: 此正则表达式不匹配非 ASCII 字母。不幸的是,大多数浏览器中的正则表达式引擎不支持命名字符集,但有一些库可以帮助解决这个问题。
对于支持命名字符集的语言/平台,您可以使用/^[\p{Letter}\d\_\-\s]+$/
试试这个正则表达式:
/^[a-z\d\-_\s]+$/i
/^[-\w\s]+$/
\w匹配字母、数字和下划线
\s匹配空格、制表符和换行符
- 匹配连字符(如果您的字符集示例中有连字符 [az],请确保将连字符放在开头,像这样 [-az])
var string = 'test- _ 0Test';
string.match(/^[-_ a-zA-Z0-9]+$/)
var regex = new RegExp("^[A-Za-z0-9? ,_-]+$");
var key = String.fromCharCode(event.charCode ? event.which : event.charCode);
if (!regex.test(key)) {
event.preventDefault();
return false;
}
在正则表达式[A-Za-z0-9?spaceHere,_-]
中,问号“?”后有一个文字空格。这匹配空间。其他人喜欢/^[-\w\s]+$/
并且/^[a-z\d\-_\s]+$/i
不为我工作。
试试这个正则表达式
*更新的正则表达式
/^[a-z0-9]+([-_\s]{1}[a-z0-9]+)*$/i
这将只允许文本之间的单个空格或 - 或 _
Ex: this-some abc123_regex
*注意:我已经根据 Toto 问题更新了正则表达式
以下两者都对我有用。
/[^a-zA-Z0-9\-_\s]/g
/[^a-z\d\-_\s]+$/i
可以像这样用空替换除字母数字、-、_ 以外的其他字符。
inputString.replace(/[^a-zA-Z0-9\-_\s]/g,"");
试试这个允许字母数字和空格
[a-zA-Z0-9]