第七色在线视频,2021少妇久久久久久久久久,亚洲欧洲精品成人久久av18,亚洲国产精品特色大片观看完整版,孙宇晨将参加特朗普的晚宴

為了賬號(hào)安全,請(qǐng)及時(shí)綁定郵箱和手機(jī)立即綁定
已解決430363個(gè)問(wèn)題,去搜搜看,總會(huì)有你想問(wèn)的

將 () 中的任何字母設(shè)為小寫(xiě),將所有其他字母設(shè)為大寫(xiě)

將 () 中的任何字母設(shè)為小寫(xiě),將所有其他字母設(shè)為大寫(xiě)

茅侃侃 2022-12-29 15:17:58
我正在嘗試使可變字符串大寫(xiě), () 內(nèi)的字母小寫(xiě)。字符串將是用戶輸入的內(nèi)容,所以不知道它會(huì)提前。用戶輸入示例輸入了什么(H)e(L)lo 預(yù)期結(jié)果是什么(h)E(l)LO 輸入了什么(H)ELLO (W)orld 預(yù)期結(jié)果是什么(h)ELLO (w)ORLD 這是我嘗試過(guò)的方法,但只有在 () 位于字符串末尾時(shí)才能讓它工作。if(getElementById("ID")){    var headline = getElementById("ID").getValue();    var headlineUpper = headline.toUpperCase();    var IndexOf = headlineUpper.indexOf("(");    if(IndexOf === -1){        template.getRegionNode("Region").setValue(headlineUpper);    }    else{        var plus = parseInt(IndexOf + 1);        var replacing = headlineUpper[plus];        var lower = replacing.toLowerCase();        var render = headlineUpper.replace(headlineUpper.substring(plus), lower + ")");                getElementById("Region").setValue(render);    }}對(duì)我們的系統(tǒng)做我只能使用香草javascript。我之前用一個(gè) () 問(wèn)過(guò)一個(gè)類似的問(wèn)題,但現(xiàn)在我們期望字符串中有多個(gè) () 。
查看完整描述

3 回答

?
千巷貓影

TA貢獻(xiàn)1829條經(jīng)驗(yàn) 獲得超7個(gè)贊

您可以將該.replace()方法與正則表達(dá)式一起使用。首先,您可以使用.toUpperCase(). 然后,你可以匹配中間的所有字符,()使用該replace方法的替換功能將匹配到的字符轉(zhuǎn)換為小寫(xiě)。

請(qǐng)參見(jiàn)下面的示例:

function uppercase(str) {

  return str.toUpperCase().replace(/\(.*?\)/g, function(m) {

    return m.toLowerCase();

  });

}


console.log(uppercase("(H)e(L)lo")); // (h)E(l)LO

console.log(uppercase("(H)ELLO (W)orld")); // (h)ELLO (w)ORLD


如果你可以支持 ES6,你可以用箭頭函數(shù)清理上面的函數(shù):


const uppercase = str => 

    str.toUpperCase().replace(/\(.*?\)/g, m => m.toLowerCase());


console.log(uppercase("(H)e(L)lo")); // (h)E(l)LO

console.log(uppercase("(H)ELLO (W)orld")); // (h)ELLO (w)ORLD


查看完整回答
反對(duì) 回復(fù) 2022-12-29
?
函數(shù)式編程

TA貢獻(xiàn)1807條經(jīng)驗(yàn) 獲得超9個(gè)贊

我試圖在不使用任何正則表達(dá)式的情況下做到這一點(diǎn)。我正在存儲(chǔ) all(和的索引)。


String.prototype.replaceBetween = function (start, end, what) {

    return this.substring(0, start) + what + this.substring(end);

};


function changeCase(str) {

    str = str.toLowerCase();


    let startIndex = str.split('').map((el, index) => (el === '(') ? index : null).filter(el => el !== null);

    let endIndex = str.split('').map((el, index) => (el === ')') ? index : null).filter(el => el !== null);


    Array.from(Array(startIndex.length + 1).keys()).forEach(index => {

        if (index !== startIndex.length) {

            let indsideParentheses = '(' + str.substring(startIndex[index] + 1, endIndex[index]).toUpperCase() + ')';

            str = str.replaceBetween(startIndex[index], endIndex[index] + 1, indsideParentheses);

        }

    });


    return str;

}


let str = '(h)ELLO (w)ORLD'

console.log(changeCase(str));


查看完整回答
反對(duì) 回復(fù) 2022-12-29
?
一只萌萌小番薯

TA貢獻(xiàn)1795條經(jīng)驗(yàn) 獲得超7個(gè)贊

以防萬(wàn)一您想要更快的正則表達(dá)式替代方案,您可以使用否定字符 ( ^)) 正則表達(dá)式而不是惰性 ( ?)。它更快,因?yàn)樗?a >不需要回溯。

const uppercase = str => 
    str.toUpperCase().replace(/\([^)]+\)/g, m => m.toLowerCase());


查看完整回答
反對(duì) 回復(fù) 2022-12-29
  • 3 回答
  • 0 關(guān)注
  • 138 瀏覽
慕課專欄
更多

添加回答

舉報(bào)

0/150
提交
取消
微信客服

購(gòu)課補(bǔ)貼
聯(lián)系客服咨詢優(yōu)惠詳情

幫助反饋 APP下載

慕課網(wǎng)APP
您的移動(dòng)學(xué)習(xí)伙伴

公眾號(hào)

掃描二維碼
關(guān)注慕課網(wǎng)微信公眾號(hào)