逗号前的Javascript大写字母

时间:2019-04-03 17:39:14

标签: javascript

说我有一个完整的姓名列表,格式如下:

  

斯塔克,艾莉亚·C。

我想将所有姓氏更改为

  

STARK,Arya C。

如何在字符串中查找逗号并使逗号前的所有字符变为大写字符?我认为它需要正则表达式,但由于我还是个初学者,所以我不知道如何正确使用它。

6 个答案:

答案 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);