我有一个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个字母而不是空格应该用空格替换
答案 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个字符的序列,后跟空格,如果该序列后跟非空白字符。