Warning: file_get_contents(/data/phpspider/zhask/data//catemap/4/regex/17.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
Regex Sencha Touch matcher是如何工作的?_Regex_Sencha Touch_Matcher - Fatal编程技术网

Regex Sencha Touch matcher是如何工作的?

Regex Sencha Touch matcher是如何工作的?,regex,sencha-touch,matcher,Regex,Sencha Touch,Matcher,我试图创建一个简单的匹配器,它匹配由字母数字字符组成的任何字符串。我尝试了以下方法: Ext.regModel('RegistrationData', { fields: [ {name: 'nickname',type: 'string'}, ], validations: [ {type: 'format', name: 'nickname', matcher: /[a-zA-Z0-9]

我试图创建一个简单的匹配器,它匹配由字母数字字符组成的任何字符串。我尝试了以下方法:

    Ext.regModel('RegistrationData', {
        fields: [
            {name: 'nickname',type: 'string'},
        ],

        validations: [
            {type: 'format', name: 'nickname', matcher: /[a-zA-Z0-9]*/}
        ]
    });
然而,这并不像预期的那样有效。我没有找到任何关于匹配器中正则表达式应该是什么样子的文档

谢谢你的帮助。

我在上找到了一个博客,他们在那里解释了验证

我不知道sencha touch是什么,但当你告诉我们你给了你的正则表达式什么,你期望它做什么,它实际做什么(没有像预期的那样工作是有点模糊)时,也许它会有所帮助。根据博客,它接受“正则表达式格式”,所以对于您的简单检查,它应该是相当标准的

编辑:

粗略猜测,您可能希望使用锚定来确保名称实际上只有字母和数字:

/^[a-zA-Z0-9]*$/
^
与字符串的开头匹配


$
正在匹配字符串的结尾

您当前的正则表达式
/[a-zA-Z0-9]*/
将匹配字符串中包含零个或多个小写或大写字符(a-Z)或数字的字符串。这就是为什么
Joe#2
J/o/e
*89Joe
以及
Joe
、Joe24
jOe28`匹配-它们都包含零个或多个后续出现的相应字符

如果希望字符串仅包含相应的字符,则必须根据以下内容更改正则表达式:

但这仍然有一个问题。由于
*
表示零次或多次出现,因此它也匹配空字符串,因此正确的字符串应为:

/^[a-zA-Z0-9]+$/

带有
+
表示一次或多次出现。这将允许昵称只包含一个小写或大写字符或数字,例如
a
F
6

您希望得到什么?发生了什么事?请提供一个例子,以便我们可以检查可能的错误。我希望我的匹配者将匹配所有仅由字母数字字符组成的昵称。这就是乔、乔、乔的绰号应该匹配。像Joe#2,J/o/e,*89Joe这样的昵称不应该匹配。@帕洛不客气,另一件事可能是你想用一个
+
替换
*
,否则它将接受一个空字符串,因为
*
意味着0或更多。实际上,我希望它能匹配一个空字符串。我使用另一个验证器处理空字符串,该验证器已分配特定的客户端消息。因此,我将(凯普*;)谢谢,我实际上希望这个匹配一个空字符串;)
/^[a-zA-Z0-9]+$/