ページ番号を表す文字列が有効かどうかを確認する必要があります。そうでなければ、可能であれば文字列を適合させるべきです。ページ番号を表す文字列を変換して確認する
有効なページ番号は12
または33-40
です。
まずは33 - 40
も有効にするために空白を削除します。また、私は特別なダッシュを置き換えています。
value = value.replace(/\u2013|\u2014/g, '-').replace(/\s+/g, '');
特別な何かが入力530-535
に変換する必要があります形式530-5
、であることができることです。 530-41
は530-541
になるはずです。私はこれをどうやってやるのか分からない。
次は、数字またはダッシュだけがある場合はテストを行います。多分、これは最善の方法ではありませんか?
value = /^[0-9\-]*$/.test(value) ? value : undefined;
例
342 // valid
0 // invalid
12-15 // valid
12-5 // gets 12-15
15-12 // invalid
115-20 // gets 115-120
115 - 20 // gets 115-120
-20 // invalid
[ 'String.prototype.replace(正規表現、関数)'](https://developer.mozilla.org/en-US/docs/ Web/JavaScript/Reference/Global_Objects/String/replace#Using_an_inline_function_that_modifies_the_matched_characters) – Andreas
@Andreas申し訳ありませんが、スペルミスがありました – user3142695
「100-5-20」と同じようなものはどうですか?それが拒否されるか、 '100-105'、' 100-120'、 '5-20'などに変換されるべきでしょうか?あるいは「20-20」の場合でも、それは拒否されるか「20」に変換されるべきですか? –