1

我正在尝试将变量字符串设置为大写,并将一个字母设置为小写()。字符串将是用户输入的内容,因此提前不知道它将是什么。

用户输入示例

输入的内容

你好(K)

预期结果是什么

你好(k)

输入的内容

(K) 李尔

预期结果是什么

(k) LEAR公司

这是我尝试过的,但只有当()位于字符串末尾时,它才能工作。

if(getElementById(“ID”)){var headline=getElementById(“ID”).getValue();var headlineUpper=标题.toUpperCase();var IndexOf=headlineUpper.IndexOf(“(”);if(索引===-1){template.getRegionNode(“区域”).setValue(headlineUpper);}其他{var plus=parseInt(IndexOf+1);var replacement=headlineUpper[plus];var lower=替换.toLowerCase();var render=headlineUpper.replace(headlineUpper.substring(plus),lower+“)”);getElementById(“区域”).setValue(呈现);}}

对我们的系统做,我只能使用vanilla javascript

0

4个答案4

重置为默认值
1

可以使用正则表达式替换以及函数来计算捕获组中的替换。

函数convertParenCase(str){return str.replace(/^([^(]*)(\([^)]*\))(.*)/,(匹配,g1,g2,g3)=>g1.toUpperCase()+g2.toLowerCase()+g3.toUpperCase());}console.log(convertParenCase('hello(K)'));console.log(convertParenCase('(K)lear'));

0

您可以分别处理字符串的三个部分。

常量转换=str=>{让idx=str.indexOf('(');如果(idx===-1){return str.to UpperCase();}其他{返回str.slice(0,idx).toUpperCase()+str.slice(idx,idx+3).toLowerCase(,)+str.slice(idx+3).toUpperCase);}};console.log(convert('hello(K)'));console.log(转换(“(K)lear”));

1
  • @logan没问题。
    ——未缓解
    2020年8月4日19:29
0

使用正则表达式可以很容易地完成。

if(getElementById(“ID”)){var headline=getElementById(“ID”).getValue();var headlineUpper=标题.toUpperCase();var textInBracket=标题上部匹配(/\(.*\)/);if(textInBracket和&textInBradge.length){headleUpper=headleUpper.replace(textInBracket[0],textInBradge[0].toLowerCase())}template.getRegionNode(“Region”).setValue(headlineUpper);}
0
让x=“hello(K)”x.到UpperCase().替换(/\(.+\)/g,x.match(/\

您可以将所有内容转换为大写,然后使用模式匹配将括号内的字符串替换为小写(有点像黑客)

对于您可能会或可能不会看到括号的情况:

x.到UpperCase()。替换(/\(.+\)/g,(x.match(/\?x.match(/\(.+\)/g)[0]:“”).toLowerCase())

你的答案

单击“发布您的答案”,表示您同意我们的服务条款并确认您已阅读我们的隐私政策.

不是你想要的答案吗?浏览标记的其他问题问你自己的问题.