Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/javascript/438.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Javascript JS-Regex代表name 用户名应仅包含字母字符(a-z),最多25个字符 应删除第一个和最后一个空格 用户名可以超过1个单词,而不是限制名称的字数_Javascript_Regex - Fatal编程技术网

Javascript JS-Regex代表name 用户名应仅包含字母字符(a-z),最多25个字符 应删除第一个和最后一个空格 用户名可以超过1个单词,而不是限制名称的字数

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

所以我现在使用的正则表达式几乎是有效的,除了一个包含3个或更多单词的用户名是无效的。这应该是有效的

有效名称可以是:

  • 丹尼斯
  • 丹尼斯
  • 丹尼斯很酷
  • 丹尼斯是最酷的
  • 等等。。最多25个字符,因为这是最大长度
  • 这是我正在使用的当前正则表达式:

        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*$
    谢谢您的解释和回答,这非常有效!