Javascript 检查输入是否最大长度为25个字符且有空格的正则表达式?
我需要一个正则表达式来检查输入是否最多25个字符,是否有两个字符串(名字和姓氏)由空格分隔。 到目前为止我有这个Javascript 检查输入是否最大长度为25个字符且有空格的正则表达式?,javascript,jquery,regex,php,Javascript,Jquery,Regex,Php,我需要一个正则表达式来检查输入是否最多25个字符,是否有两个字符串(名字和姓氏)由空格分隔。 到目前为止我有这个 var name=$('#name').val(); var namePattern = /^[\sA-Za-z]{25}$/; if(namePattern.test(name)) { return true; } 为什么使用正则表达式 if (name.length < 26 && name.indexOf(' ') > 1) { // t
var name=$('#name').val();
var namePattern = /^[\sA-Za-z]{25}$/;
if(namePattern.test(name))
{
return true;
}
为什么使用正则表达式
if (name.length < 26 && name.indexOf(' ') > 1) {
// the name's 25 characters or less
// there's at least one character before the space
}
使用以下内容,因为您使用jQuery标记了问题:
$('li').addClass(function(){
var name = $.trim($(this).text());
return name.length < 26 && name.split(/\s+/).length > 1 ? 'pass' : 'fail';
});
$('li').addClass(函数(){
var name=$.trim($(this.text());
返回name.length<26&&name.split(/\s+/).length>1?'pass':'fail';
});
.为什么要使用正则表达式
if (name.length < 26 && name.indexOf(' ') > 1) {
// the name's 25 characters or less
// there's at least one character before the space
}
使用以下内容,因为您使用jQuery标记了问题:
$('li').addClass(function(){
var name = $.trim($(this).text());
return name.length < 26 && name.split(/\s+/).length > 1 ? 'pass' : 'fail';
});
$('li').addClass(函数(){
var name=$.trim($(this.text());
返回name.length<26&&name.split(/\s+/).length>1?'pass':'fail';
});
.说明
此表达式将:
- 验证字符串的长度不超过25个字符
- 跳过任何前导或尾随空格
- 将名字和姓氏捕获到两个单独的捕获组中
- 允许在名称中使用连字符和
。当然,你认为一个有效的名字真的很适合你。小心,因为“
不会验证重音字符[a-z]
^(?=\s*\s[^\r\n]{0,23}\s\s*\Z)\s*([a-Z-']+)\s([a-Z-']+)\s*\Z
实例
现场演示:
示例文本
请注意,在live示例和本示例文本中,有前导空格和尾随空格
Mc'David Johnson-Smith
捕获组
[0][0] = Mc'David Johnson-Smith
[0][2] = Mc'David
[0][3] = Johnson-Smith
描述
此表达式将:
- 验证字符串的长度不超过25个字符
- 跳过任何前导或尾随空格
- 将名字和姓氏捕获到两个单独的捕获组中
- 允许在名称中使用连字符和
。当然,你认为一个有效的名字真的很适合你。小心,因为“
不会验证重音字符[a-z]
^(?=\s*\s[^\r\n]{0,23}\s\s*\Z)\s*([a-Z-']+)\s([a-Z-']+)\s*\Z
实例
现场演示:
示例文本
请注意,在live示例和本示例文本中,有前导空格和尾随空格
Mc'David Johnson-Smith
捕获组
[0][0] = Mc'David Johnson-Smith
[0][2] = Mc'David
[0][3] = Johnson-Smith
嗯,还有,所以我想知道OP是否知道他想要什么。嗯,好主意。但我相信,如果我输入“Bruce”,它将返回真实。我需要两条线之间的空间,修剪一下
$.trim()
不进行修剪,您可以允许正则表达式允许前导和尾随空格,并忽略它。还有,所以我想知道OP是否知道他想要什么。嗯,好主意。但我相信,如果我输入“Bruce”,它将返回真实。我需要两条线之间的空间,修剪一下$.trim()
不进行修剪,您可以允许正则表达式允许前导和尾随空格,并忽略它。当然,我会使用@DavidThomas的解决方案,但以教授正则表达式的名义(以滋生更多问题的名义),您可能希望使用一个前瞻性断言:/^(?=)。{1,25}$)[a-z]+\s[a-z]+$/i
。请注意,我使用了i
修饰符来表示大小写不敏感。我当然会使用@DavidThomas的解决方案,但以教授正则表达式的名义(以滋生更多问题的名义),您可能会希望使用一个前瞻性断言:/^=({1,25}$)[a-z]+\s[a-z]+$/i
。请注意,我使用了i
修饰符来表示大小写不敏感。