1

26文字ごとにスペースを強制するJavaScript関数があります

function nospaces(t)    
{
    if(t.value.match(/\S{27}/g))
    {    
        //alert('Sorry, you can not enter a word more than 26 characters long');
        t.value[5]=t.value.replace(/\S{27}/g,'');
    }
}

今、ユーザーがスペースの代わりに入力する27文字ごとにスペースに置き換える必要があります

4

3 に答える 3

0

あなたはそのようなことをすることができます:

var string = 'abcdefghijklmnopqrstuvwxyz0abcdefghijklmnopqrstuvwxyz0hjh...'; 
// 0 is 27th
string = string.replace(/(\S{26})\S/g, '$1 ');

これがベストプラクティスかどうかはわかりませんが、うまくいきます。

于 2012-07-18T11:49:12.477 に答える
0
function nospaces(t)    
{
     return t.replace(/\S{27}(?=\S)/g, '$& ');
}

27 文字のシーケンスを 27 文字のシーケンスに置き換え、そのシーケンスの後に空白以外の文字が続く場合は、スペースが続きます。

于 2012-07-18T11:49:15.863 に答える
0

正規表現グループを賢く利用してください。\S{26}その後に が続く場合は\S、最初のグループとそれに続くスペースで一致全体を置き換えます。

var foo = 'abcdefghijklmnopqrstuvwxyzab'.replace(/(\S{26})(\S)/, '$1 '); 与えます: abcdefghijklmnopqrstuvwxyz b

于 2012-07-18T11:48:57.747 に答える