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

最初の文字の後に少なくとも 1 文字が必要であることを確認したい場合は、*+、または{2,}少なくとも 2 文字以上、または{2,5}2 ~ 5 文字に置き換えることができます。

于 2012-11-07T17:43:56.093 に答える
1

^[a-z][a-z0-9_ .-]*動作します。

疑問符があるため、正規表現は文字のみに一致しました。これは、一致が可能な最小の一致であるためです。

参照/正規表現

于 2012-11-07T17:46:22.133 に答える