![](/img/trans.png)
[英]Javascript RegEx: Get 1 or 2 digits after a symbol (Excluding that symbol)
[英]regex excluding a char before a symbol in JS
我目前想让城市名称的第一个字母大写; 但由于在我的国家,我们有很多城市的名称由多个单词组成(例如纽约),我目前正在使用这个正则表达式:
/\w\S*/g
所以我正在使用这个 function
function capitalizeWords(myString) {
return myString.replace(/\w\S*/g, w => w.replace(/^\w/, c => c.toUpperCase()))
}
这样我就可以在New York
new york
。
但现在我有一个小问题,我有一些城市,比如
sauze d'oulx
我需要将其转换为Sauze d'Oulx
,不包括d
,或者在任何情况下'
符号之前的第一个字符。
在已知字符之前排除一个字符的技巧是什么?
您可以在匹配和捕获预期匹配之前将所有异常定义为替代:
const texts = ["new york", "sauze d'oulx"]; const capitalizeWords = (myString) => myString.replace(/\bd['']|(\w)(\S*)/g, (m, g, h) => g? g.toUpperCase() + h: m); for (const text of texts) { console.log(text, '->', capitalizeWords(text)); }
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.