用空格替换正则表达式字符

时间:2012-07-18 11:26:21

标签: javascript regex

我有一个javascript函数,每26个字母后强制一个空格

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个字母而不是空格应该用空格替换

3 个答案:

答案 0 :(得分:0)

巧妙地使用正则表达式组,如果\S{26}后跟\S,则将整个匹配替换为第一组,后跟空格;

var foo = 'abcdefghijklmnopqrstuvwxyzab'.replace(/(\S{26})(\S)/, '$1 '); 得到: abcdefghijklmnopqrstuvwxyz b

答案 1 :(得分:0)

你可以这样做:

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

我不确定这是否是最佳做法,但它确实有效。

答案 2 :(得分:0)

function nospaces(t)    
{
     return t.replace(/\S{27}(?=\S)/g, '$& ');
}

用27个字符的序列替换27个字符的序列,后跟空格,如果该序列后跟非空白字符。