Warning: file_get_contents(/data/phpspider/zhask/data//catemap/5/google-sheets/3.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Javascript 如何使用前面的数字来减小字符串的大小?_Javascript - Fatal编程技术网

Javascript 如何使用前面的数字来减小字符串的大小?

Javascript 如何使用前面的数字来减小字符串的大小?,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

如何将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=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("")
}