Google 脚本应用程序 - 将单元格中输入字符串的每个单词的首字母大写
Google Script Apps - Capitalize first letter of each word of input string in cell
我正在寻找一种解决方案,将输入字符串的每个单词大写到由空白 space 或点分隔的单元格(类似于 proper
函数)。我知道它坏了,但我到目前为止所做的尝试:
/*Capitalize Firt Letter of Each Word of input String in Cell*/
if(activeRow > 1 && activeCol == 3 && ss.getSheetName() == validSheet && activeCell.isBlank() == false)
{
var inputVal = activeCell.getValue().toString();
Logger.log(inputVal);
activeCell.setFormulaR1C1("=PROPER("+inputVal+")");
}
示例:
单元格 A2 的输入:
this tExt neEds to be fixed
单元格 A2 的输出(期望结果):
This Text Needs To Be Fixed
提前致谢
编辑 1:我注意到正确的函数不起作用,因为它需要其中的单元格值。
这是一个接受字符串并将每个单词的第一个字母大写的函数:
function capitalizePhrase(phrase) {
var reg = /\b(\w)/g;
function replace(firstLetters) {
return firstLetters.toUpperCase();
}
capitalized = phrase.replace(reg, replace);
return capitalized;
}
你可以这样使用它:
var inputVal = activeCell.getValue().toString();
var outputVal = capitalizePhrase(inputVal);
activeCell.setValue(outputVal);
编辑 - 如果您还想将单词中的其他字母设置为小写,可以改用此功能:
function properCase(phrase) {
var regFirstLetter = /\b(\w)/g;
var regOtherLetters = /\B(\w)/g;
function capitalize(firstLetters) {
return firstLetters.toUpperCase();
}
function lowercase(otherLetters) {
return otherLetters.toLowerCase();
}
var capitalized = phrase.replace(regFirstLetter, capitalize);
var proper = capitalized.replace(regOtherLetters, lowercase);
return proper;
}
我正在寻找一种解决方案,将输入字符串的每个单词大写到由空白 space 或点分隔的单元格(类似于 proper
函数)。我知道它坏了,但我到目前为止所做的尝试:
/*Capitalize Firt Letter of Each Word of input String in Cell*/
if(activeRow > 1 && activeCol == 3 && ss.getSheetName() == validSheet && activeCell.isBlank() == false)
{
var inputVal = activeCell.getValue().toString();
Logger.log(inputVal);
activeCell.setFormulaR1C1("=PROPER("+inputVal+")");
}
示例:
单元格 A2 的输入:
this tExt neEds to be fixed
单元格 A2 的输出(期望结果):
This Text Needs To Be Fixed
提前致谢
编辑 1:我注意到正确的函数不起作用,因为它需要其中的单元格值。
这是一个接受字符串并将每个单词的第一个字母大写的函数:
function capitalizePhrase(phrase) {
var reg = /\b(\w)/g;
function replace(firstLetters) {
return firstLetters.toUpperCase();
}
capitalized = phrase.replace(reg, replace);
return capitalized;
}
你可以这样使用它:
var inputVal = activeCell.getValue().toString();
var outputVal = capitalizePhrase(inputVal);
activeCell.setValue(outputVal);
编辑 - 如果您还想将单词中的其他字母设置为小写,可以改用此功能:
function properCase(phrase) {
var regFirstLetter = /\b(\w)/g;
var regOtherLetters = /\B(\w)/g;
function capitalize(firstLetters) {
return firstLetters.toUpperCase();
}
function lowercase(otherLetters) {
return otherLetters.toLowerCase();
}
var capitalized = phrase.replace(regFirstLetter, capitalize);
var proper = capitalized.replace(regOtherLetters, lowercase);
return proper;
}