0

私は既存の正規表現を持っています:

/^(\d*)(\.(\d*))?$|^$/

これに空のフィールド (\s*) のチェックを追加/変更するにはどうすればよいですか? - 正規表現を学ぼうとして検索しましたが、適切なリソースが見つかりませんでした。

4

3 に答える 3

0

まず第一に、あなたの|^$部分は冗長です。ただし、空のフィールドを禁止しようとしている場合は、代わりにこれを試すことができます。

/^\d*\.?\d+$/

先頭と末尾の空白を無視したい場合は、これを試してください:

/^\s*\d*\.?\d+\s*$/

あなたの言い回しは少し不明確なので、これがあなたがしようとしていることではない場合はお知らせください.

于 2013-04-11T20:07:58.463 に答える
0

したがって、正規表現は次のように述べています。

先頭から一致 – ^ – 0 個以上の数字 – \d* –、その後にドットと 0 個以上の数字が続く場合があります – (.(\d*))? – 後に何もない – $、文字列の終わり。または – | – 文字列の先頭とそれに続く文字列の末尾に一致 – ^$ –.

変更する必要があるのは、最後の部分です。の代わりに^$、 match を使用できます。これは、「文字列の先頭に一致し、その後に 0 個以上の空白が続き、文字列の末尾に一致する」^\s*$と読みます。したがって、前の条件 (ゼロ空白は最初から最後までを意味する) と新しい条件 (いくつかの空白を含む) の両方に一致します。

正規表現をよりよく理解するのに役立つことを願っています。残念ながら、私は RegExp の適切なリソースを知りません。私はMDNを使用しています。

于 2013-04-11T20:12:43.987 に答える