Javascript JS-Regex代表name 用户名应仅包含字母字符(a-z),最多25个字符 应删除第一个和最后一个空格 用户名可以超过1个单词,而不是限制名称的字数
所以我现在使用的正则表达式几乎是有效的,除了一个包含3个或更多单词的用户名是无效的。这应该是有效的 有效名称可以是:Javascript JS-Regex代表name 用户名应仅包含字母字符(a-z),最多25个字符 应删除第一个和最后一个空格 用户名可以超过1个单词,而不是限制名称的字数,javascript,regex,Javascript,Regex,所以我现在使用的正则表达式几乎是有效的,除了一个包含3个或更多单词的用户名是无效的。这应该是有效的 有效名称可以是: 丹尼斯 丹尼斯 丹尼斯很酷 丹尼斯是最酷的 等等。。最多25个字符,因为这是最大长度 这是我正在使用的当前正则表达式: var pattern = /^[a-z\u00C0-\u01FF]+([\s\.\-\']?[a-z\u00C0-\u01FF]+)? $/i; if (pattern.exec(uname) == null) { ale
var pattern = /^[a-z\u00C0-\u01FF]+([\s\.\-\']?[a-z\u00C0-\u01FF]+)? $/i;
if (pattern.exec(uname) == null)
{
alert('Invalid name');
return false;
}
那么,如何调整正则表达式,使其能够处理更多的单词,而不是最大长度为25个字符的2个单词呢?您的正则表达式指定它需要一组字符,然后可选地需要一个空格和另一组字符。因此,你的两个字的限制
如果您将
([\s\.-\']?[a-z\u00C0-\u01FF]+)?
更改为([\s\.-\']?[a-z\u00C0-\u01FF]+)*
,它将允许零个或多个额外的单词,而不是零个或一个。如果它只能是字母字符和空格,为什么会有这样的:[\s\-\\\\\\\\\\\']
\对不起,我弄错了。您的解决方案很好,除了只允许使用带空格的名称外,它不应该是^\s*([a-z](?:[a-z]){0,24}?\s*$
谢谢您的解释和回答,这非常有效!