Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/javascript/381.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Javascript 直接使用toUppercase与替换toUppercase_Javascript_String - Fatal编程技术网

Javascript 直接使用toUppercase与替换toUppercase

Javascript 直接使用toUppercase与替换toUppercase,javascript,string,Javascript,String,我发现了一个将字符串改为大写的代码 const s = 'Keep on Asking' const r = s.replace(/[a-z]+/g, function(m) { return m.toUpperCase() }) console.log(r) 输出:“继续询问” 我通常做的是: const s = 'Keep on Asking' const r = s.toUpperCase() console.log(r) 输出:“继续询问” 有人能解释为什么使用第一种方法吗?直

我发现了一个将字符串改为大写的代码

const s = 'Keep on Asking'
const r = s.replace(/[a-z]+/g, function(m) {
 return m.toUpperCase() 
})
console.log(r) 
输出:“继续询问”

我通常做的是:

const s = 'Keep on Asking'
const r = s.toUpperCase()
console.log(r)
输出:“继续询问”

有人能解释为什么使用第一种方法吗?直接使用toUppercase函数是一种不好的做法吗

有人能解释为什么使用第一种方法吗?直接使用
toUppercase
函数是一种不好的做法吗

直接使用
toUppercase
函数并不是一个坏习惯。事实上,我认为第一种方法是一种不好的做法,因为:

  • 它只影响非重音拉丁字母
  • 它的速度较慢,因为它首先需要将正则表达式与字符串匹配
我不知道为什么有人会将第一种方法用于实际目的

有人能解释为什么使用第一种方法吗?直接使用
toUppercase
函数是一种不好的做法吗

直接使用
toUppercase
函数并不是一个坏习惯。事实上,我认为第一种方法是一种不好的做法,因为:

  • 它只影响非重音拉丁字母
  • 它的速度较慢,因为它首先需要将正则表达式与字符串匹配

我不知道为什么有人会出于实际目的使用第一种方法。

为了避免疑问:只要使用
toUpperCase
或直接使用,没有真正好的(可能是模糊的)理由,不要使用第一个代码块

第一个代码块将将英文字母
a
更改为
z
为大写,而将其他字母(如
a
)单独保留。相比之下,由于

必须根据Unicode字符数据库中不区分区域设置的大小写映射派生结果(这不仅明确包括UnicodeData.txt文件,还包括它附带的SpecialCasings.txt文件中所有不区分区域设置的映射)

(这是从,它是
toUpperCase
所指的。)

这就是行动上的区别:

const original=“瞧”;
console.log(
“仅替换a-z:”+
原始.replace(/[a-z]+/g,m=>m.toUpperCase())
);
console.log(
“toUpperCase:”+
原始.toUpperCase()
);
console.log(
“Tolocaluepper案例:”+
原文:Tolocalueppercase()

);为了避免疑问:只需使用
toUpperCase
或直接使用,没有真正好的(可能是模糊的)理由,不要使用第一个代码块

第一个代码块将将英文字母
a
更改为
z
为大写,而将其他字母(如
a
)单独保留。相比之下,由于

必须根据Unicode字符数据库中不区分区域设置的大小写映射派生结果(这不仅明确包括UnicodeData.txt文件,还包括它附带的SpecialCasings.txt文件中所有不区分区域设置的映射)

(这是从,它是
toUpperCase
所指的。)

这就是行动上的区别:

const original=“瞧”;
console.log(
“仅替换a-z:”+
原始.replace(/[a-z]+/g,m=>m.toUpperCase())
);
console.log(
“toUpperCase:”+
原始.toUpperCase()
);
console.log(
“Tolocaluepper案例:”+
原文:Tolocalueppercase()

);
这看起来确实很奇怪,因为它会用它的
幼稚的
字母表方法特别打断重音词…我会使用第二个-
r=s.toUpperCase()
-足够简单和直接。我不是正则表达式专家(例如:我不知道
+
是做什么用的)。除非有人能“证明”使用正则表达式在任何方面都更好,否则我认为这就是用右手抓你的左耳——当左手在那里的时候这看起来确实很奇怪,因为它会用它的
幼稚的
方法来打破重音词……我会使用第二个-
r=s.toUpperCase()
-足够简单和直接。我不是正则表达式专家(例如:我不知道
+
是做什么用的)。除非有人能“证明”使用正则表达式在任何方面都更好,否则我认为这就是用右手抓你的左耳——当左手在那里的时候我懂了。因此,除非你试图应用一些条件,否则第二种方法是go@SeoiMin-在你发表评论之前,我刚刚添加了一段新的第一段,因为我意识到我对此并不清楚。:-)是的,第二种方法是正确和标准的方法,直接使用
toUpperCase
tolocalueuppercase
,而不是使用
replace
仅挑选某些字符。“toUpperCase可以更改字符串的长度”—使用德语Eszett“ß”就是一个例子。大写字母“Straße”(长度6)返回“STRASSE”(长度7)。@str-谢谢!规范刚刚提到它可能发生,我想不出一个例子。(这有点悲哀,因为几年前我确实遇到了与编程无关的ß=>SS…)我明白了。因此,除非你试图应用一些条件,否则第二种方法是go@SeoiMin-在你发表评论之前,我刚刚添加了一段新的第一段,因为我意识到我对此并不清楚。:-)是的,第二种方法是正确和标准的方法,直接使用
toUpperCase
tolocalueuppercase
,而不是使用
replace
仅挑选某些字符。“toUpperCase可以更改字符串的长度”—使用德语Eszett“ß”就是一个例子。大写字母“Straße”(长度6)返回“STRASSE”(长度7)。@str-谢谢!规范刚刚提到它可能发生,我想不出一个例子。(这有点悲哀,因为几年前我