正如标题所述,我正在尝试创建一个脚本,该脚本将每个字母都查找为一个字符串,例如将“ a”或“ A”字母转换为句子,将其更改为大写并将其括在方括号中。例如,“我买了[A]足球”。
我将使用此脚本进入一个重命名器应用程序,该应用程序使用Javascript做各种工作。所以我有这两个脚本...
return item.newBasename.replace(/(?=.{1}$)/,'[');
和..
return item.newBasename.replace(/(?=.{0}$)/,']');
基本上可以以某种方式完成我想要的工作,但是就像我手动工作一样!
编辑
此重命名器应用程序默认为我提供此...
function(index, item) { }
我必须将代码写成这样……
function(index, item) {return item.newBasename...etc}
答案 0 :(得分:3)
您可以将(^| )([a-z])(?=$| )
与toUpperCase()
方法一起用作正则表达式:
var str = 'i bought a soccer ball';
console.log(str.replace(/(^| )([a-z])(?=$| )/g, function($0, $1, $2) {
return $1 + '[' + $2.toUpperCase() + ']';
}));
正则表达式细目:
(^| )
捕获输入字符串或空格字符的开头([a-z])
捕获小写字母(?=$| )
后跟字符串末尾或空格,与(?!\S)
答案 1 :(得分:2)
不使用regex
的解决方案:
var inputStr = "i bought a soccer ball"
var outputStr = inputStr.split(' ') // separete each words
.map(w => w.length === 1 ? '[' + w.toUpperCase() + ']' : w) // uppercase single letters
.join(' ') // join them with single space
console.log(outputStr);
答案 2 :(得分:2)
您可以使用单词限制功能,轻松找到单个字母,例如\b(\w)\b
:-
function formatSentence(sentence){
return sentence.replace(/\b(\w)\b/g,
function($0) {
return '[' + $0.toUpperCase() + ']';
})
}