我正在尝试创建一个程序,在写入字符串时,该程序在第二个字母后添加“ gav”。
var string1 = "word"
wogavrdgav
答案 0 :(得分:0)
您可以为此使用模运算符-
var string1 = "word";
function addGav(str){
var newStr = '';
var strArr = str.split('');
strArr.forEach(function(letter, index){
index % 2 == 1
? newStr += letter + 'gav'
: newStr += letter
})
return newStr;
}
console.log(addGav(string1)); // gives wogavrdgav
console.log(addGav('gavgrif')) //gives gagavvggavrigavf....
答案 1 :(得分:0)
在这里,我们可以向.
添加一个量词(匹配换行符的所有字符),并设计一个具有一个捕获组($1
)的表达式:
(.{2})
const regex = /(.{2})/gm;
const str = `AAAAAA`;
const subst = `$1bbb`;
// The substituted value will be contained in the result variable
const result = str.replace(regex, subst);
console.log('Substitution result: ', result);
您还可以在jex.im中可视化您的表达式:
如果您希望将换行视为一个字符,则此表达式可以做到这一点:
([\s\S]{2})
const regex = /([\s\S]{2})/gm;
const str = `ABCDEF
GHIJK
LMNOP
QRSTU
VWXYZ
`;
const subst = `$1bbb`;
// The substituted value will be contained in the result variable
const result = str.replace(regex, subst);
console.log('Substitution result: ', result);
答案 2 :(得分:0)
尝试一下:
const string1 = 'word'
console.log('Input:', string1)
const newStr = string1.replace(/(?<=(^(.{2})+))/g, 'gav')
console.log('Output:', newStr)
.{2}
:任意2个字符(.{2})+
:匹配2 4 6 8任何字符^(.{2})+
:从开始匹配2 4 6 8任何字符,如果没有^
,则此正则表达式将从任何位置匹配?<=(regex_group)
:匹配regex_group
之后的内容g
:全部匹配这种方法是从字符串的开头查找2,4,6等字符,并且不匹配该组,因此它将在2,4,6等字符之前匹配''
并替换为{ {1}}
'gav'
的示例:
匹配word
,wo
并忽略它,匹配之前的内容(word
)并用方法''
替换为'gav'