Javascript 如何使用前面的数字来减小字符串的大小?
如何将replaceJavascript 如何使用前面的数字来减小字符串的大小?,javascript,Javascript,如何将replace“CCCC”等字符串的大小减小到“4C” 如果有一个字母段,则保持不变“abbbcdcc”到“A3B2CD2C”您可以使用String的回调参数#replace,以及带有反向引用的正则表达式(\1): let s=“abbccdcc”; 设res=s.replace(/()\1+/g,m=>m.length+m[0]); 控制台日志(res)函数减小大小(示例){ example=example.toUpperCase(); newString=[1,示例[0]] 对于(i
“CCCC”等字符串的大小减小到“4C”
如果有一个字母段,则保持不变<代码>“abbbcdcc”到“A3B2CD2C”您可以使用
String的回调参数#replace
,以及带有反向引用的正则表达式(\1
):
let s=“abbccdcc”;
设res=s.replace(/()\1+/g,m=>m.length+m[0]);
控制台日志(res)代码>函数减小大小(示例){
example=example.toUpperCase();
newString=[1,示例[0]]
对于(i=1;i
编辑:
函数减小大小(示例){
example=example.toUpperCase();
newString=[1,示例[0]]
对于(i=1;i
函数getTransformText(元素){
让text=element.value;
让lastMatchedChar='';//这有助于我们知道匹配的最后一个“char”
让结果=(text.split(“”).map((c,i)=>
{
设cCount=0;
如果(c!==lastMatchedChar)
lastmachedchar=c;
其他的
返回“”;
让非匹配=假;
text.split(“”).forEach((c_1,i_1)=>
{
如果(i)这是正确的,但它应该是m.length+m[0],而不是m[0]+m.length,以匹配问题所需的内容。我认为您需要切换顺序;您的显示的是B3
,而不是3B
。易于修复。这是一个聪明的解决方案。顺序已更改,-)这听起来像是一项家庭作业。你写过代码吗?你的方法是什么?你在实现这一点时面临什么问题?这不会输出正确的结果。例如,aasssddddeecc
outputs`A4S4D3E2C`哦,是的,第一个字符被移动了,所以2
被删除,如果
语句有,则添加一个简单的作品
function decreaseSize(example) {
example = example.toUpperCase();
newString = [1, example[0]]
for (i = 1; i < example.length; i++) {
if (example[i] === newString[newString.length - 1]) {
if (typeof newString[newString.length - 2] === "number") {
newString[newString.length - 2]++;
} else if (typeof newString[newString.length - 2] === "string") {
newString[newString.length - 1] = 2;
newString.push(example[i]);
}
} else {
newString.push(example[i])
}
}
newString.shift();
return newString.join("")
}
function decreaseSize(example) {
example = example.toUpperCase();
newString = [1, example[0]]
for (i = 1; i < example.length; i++) {
if (example[i] === newString[newString.length - 1]) {
if (typeof newString[newString.length - 2] === "number") {
newString[newString.length - 2]++;
} else if (typeof newString[newString.length - 2] === "string") {
newString[newString.length - 1] = 2;
newString.push(example[i]);
}
} else {
newString.push(example[i])
}
}
if (newString[0] === 1) {
newString.shift();
}
return newString.join("")
}