私はドメインと呼ばれる入力フィールドを持っています。ユーザーはこのフィールドに値を入力し、ほとんどの場合、自動的に ".com"を最後に付けます。特定の部分文字列で終わる文字列を自動補完します
ユーザータイプは「example」で、出力は「example.com」です。
"example"を防ぐスクリプトセクションがあります。 "example..com"になることはありません。私は何をしようとしていることは、文字列は「.COM」のいずれかの部分で終わる場合、文字列は、「NET」のいずれかの部分で終了した場合は、「NET」を追加し、「.COM」を追加している
// Convert to lower case, remove all non-valid characters, remove duplicate hyphens and periods, remove hyphens and periods from ends
var domain = document.getElementById('domain').value.toLowerCase().replace(/[^a-z0-9-\.]/g, '').replace(/(-+(?=-))|(\.+(?=\.))/g,'').replace(/(^-+)|(-+$)|(^\.+)|(\.+$)/g, '');
// Add the TLD that best matches if it needs one
if(!/\.(com|net|org)$/.test(domain) && domain != '') domain += '.com';
文字列が ".org"のいずれかの部分で終了する場合は、 "。org"を付加します。
ユーザーが「example.c」を入力すると、「example.c.com」ではなく「example.com」になります。
ユーザーが「example.net」を入力すると、「example.net」のままになります。
ユーザーが「example.nett」を入力すると、「example.nett.com」になります。
私は9つの異なる順列(c、co、com、n、ne、ネット、o、or org)をテストできますが、これを行うためのより良い方法を見つけようとしています。より多くのTLDをサポートします。
なぜロジックが「「example.nett」を入力すると「example.nett.com」になりますか?なぜ "example.nett"は "example.net"や "example.nett.net"に置き換えられませんか? – guest271314
私はタイプミスを考慮したくありません。誰かが.com、.net、または.orgの開始以外のものを入力した場合、最初の部分がサブドメインであると仮定し、同じ.comロジックをドメインに適用したいと考えます。誰かがnettで入力すると、nett.comに入力します。 – GFL