说我有一个完整的姓名列表,格式如下:
斯塔克,艾莉亚·C。
我想将所有姓氏更改为
STARK,Arya C。
如何在字符串中查找逗号并使逗号前的所有字符变为大写字符?我认为它需要正则表达式,但由于我还是个初学者,所以我不知道如何正确使用它。
答案 0 :(得分:1)
使用最原始的JavaScript添加另一种可能性:
d <- tibble(x = c(1,-1), y=c(2,3), z= c(4,5))
答案 1 :(得分:0)
您可以将String#replace
方法与回调函数一起使用。在哪里可以使用positive lookahead assertion来获取单词,后跟一个逗号。
let str = 'Stark, Arya C.';
// use regex to match a word followed by a comma
// where use positive look-ahead assertion for getting the word followed by comma
let res = str.replace(/\w+(?=,)/, m => m.toUpperCase())
console.log(res);
String#toUpperCase
不会对逗号进行任何更改。
let str = 'Stark, Arya C.';
let res = str.replace(/\w+,/, m => m.toUpperCase())
console.log(res);
更新:如果要匹配逗号之前的所有内容(包括空格),请使用.
代替\w
(仅适用于文字字符)。要包含换行符,请使用[\s\S]
。
let str = 'Stark, Arya C.';
let res = str.replace(/.+,/, m => m.toUpperCase())
console.log(res);
答案 2 :(得分:0)
name = name.split(',')[0].toUpperCase() + ',' + name.split(',')[1]
答案 3 :(得分:0)
在,
上分割并在操纵后再次加入它们
let str = 'Stark, Arya C.'
let op = str.split(',')
let final = op[0].toUpperCase() + ',' + op[1]
console.log(final)
如果您有多个逗号
let str = 'Stark, Arya C, some more text.'
let splitted = str.split(',')
let last = splitted.pop()
let withComma = splitted.join(',').toUpperCase()
let final = withComma + ',' + last
console.log(final)
答案 4 :(得分:0)
您可以使用,
在字符串中找到.indexOf(',')
的第一个索引,并将其传递给连接大写(.toUpprCase()
)子字符串的IIFE(立即调用函数表达式)在该索引和字符串的其余部分之前。
let name = 'Stark, Arya C.';
name = (idx => name.substr(0, idx).toUpperCase() + name.substr(idx))(name.indexOf(','));
console.log(name);
答案 5 :(得分:0)
检查一下
var string = "Sheikh, Shoyeb Billings, Sam Demon, Matt";
regex = /(?<= |)\S[A-z]*(?=,)/g;
var modified = string.replace(regex, function (match) {
return match.toUpperCase();
});
console.log(modified);