Javascript 使字符串中的一个字母小写,所有其他字母大写
我试图制作一个大写的可变字符串和一个小写的()字母。字符串将是用户输入的内容,因此不知道提前输入的内容 用户输入示例 输入什么Javascript 使字符串中的一个字母小写,所有其他字母大写,javascript,Javascript,我试图制作一个大写的可变字符串和一个小写的()字母。字符串将是用户输入的内容,因此不知道提前输入的内容 用户输入示例 输入什么 hello(K) (K)lear 预期结果是什么 HELLO(k) (k)LEAR 输入什么 hello(K) (K)lear 预期结果是什么 HELLO(k) (k)LEAR 下面是我尝试过的,但只有当()位于字符串末尾时,才能使其工作 if(getElementById("ID")){ var headli
hello(K)
(K)lear
预期结果是什么
HELLO(k)
(k)LEAR
输入什么
hello(K)
(K)lear
预期结果是什么
HELLO(k)
(k)LEAR
下面是我尝试过的,但只有当()位于字符串末尾时,才能使其工作
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);
}
}
对于我们的系统,我只能使用普通javascript,您可以分别处理字符串的三个部分
const convert=str=>{
设idx=str.indexOf('(');
如果(idx==-1){
return str.toUpperCase();
}否则{
返回str.slice(0,idx).toUpperCase()+str.slice(idx,idx+3).toLowerCase()+str.slice(idx+3).toUpperCase();
}
};
console.log(convert('hello(K)');
console.log(convert(“(K)lear”);
您可以使用正则表达式替换,以及一个函数来计算捕获组的替换
函数转换程序(str){
返回str.replace(/^([^(]*)(\([^)]*\)(.*)/,
(match,g1,g2,g3)=>g1.toUpperCase()+g2.toLowerCase()+g3.toUpperCase());
}
log(convertParenCase('hello(K)');
log(convertParenCase(“(K)lear”);
使用正则表达式可以很容易地完成
if(getElementById("ID")){
var headline = getElementById("ID").getValue();
var headlineUpper = headline.toUpperCase();
var textInBracket = headlineUpper.match(/\(.*\)/);
if(textInBracket && textInBracket.length) {
headlineUpper = headlineUpper.replace(textInBracket[0], textInBracket[0].toLowerCase())
}
template.getRegionNode("Region").setValue(headlineUpper);
}
您可以将所有内容转换为大写,然后使用模式匹配将括号内的字符串替换为小写(有点像黑客)
对于可能得到或可能得不到括号的情况:
x.toUpperCase().replace(/\(.+\)/g, (x.match(/\(.+\)/g)?x.match(/\(.+\)/g)[0]:"").toLowerCase())
@洛根:没问题。