1

经过几个教程后,我以为我有这个,但不——

我试图只匹配一串字母、数字、空格、连字符、句点和下划线,并且必须以 jquery 函数中的字母开头

这是我在教程之后想出的,但它只接受字母:

/^[a-z][a-z0-9_ .-]*?/i

请帮忙!

++编辑++

这是我尝试使用的代码:

$('input[name=albumName]').keyfilter(/^[a-z][a-z0-9_ .-]*?/i);

用户输入的名称也将在 URL 中使用,因此我想限制他们的输入。我希望允许这样做(Texas AandM - 2012),但不允许这样做(2012 - Texas A&M)

4

2 回答 2

1

你的正则表达式对我来说看起来不错。也许周围的代码而不是正则表达式有问题?这是一个 Python 示例:

s_re = re.compile('^[a-z][a-z0-9_.-]*',re.I) # case insensitive match

In [12]: if s_re.match('A'): print 'match'
match

In [14]: if s_re.match('A.-'): print 'match'
match

In [15]: if s_re.match('1.-'): print 'match'

In [16]: if s_re.match('1_.-'): print 'match'

In [17]: if s_re.match('A_.-'): print 'match'
match

如果您想确保在第一个字母之后至少需要一个字符,您可以将 替换为*a +,或者{2,}至少再多 2 个字符,或者{2,5}2 到 5 个字符。

于 2012-11-07T17:43:56.093 回答
1

^[a-z][a-z0-9_ .-]*作品。

由于问号,正则表达式只匹配字母,因为匹配是最小的匹配。

参考/正则表达式

于 2012-11-07T17:46:22.133 回答