需要解释这个Javascript字符串资本主义原型

Need explanation of this Javascript String Capitalise Protoype

本文关键字:字符串 资本主义 原型 Javascript 解释      更新时间:2023-09-26

使用以下代码位:

CSS:

input   {background-color:black; text-transform:capitalize;}

JS:

String.prototype.capitalize = function() { 
    return this.replace( /(^|'s)([a-z])/g , function(m,p1,p2){ 
        return p1+p2.toUpperCase(); 
     }); 
};

HTML:

<input type="text" id="if1" onfocus="enterInp(this.id)" onblur="exitInp(this.id)" />

我惊讶地发现,即使输入文本字段在屏幕上正确显示,它的值也没有大写,所以我想办法做到这一点;一个设施,尽管它工作得很好,但我不清楚它是如何工作的,我也找不到解释——我没有Javascript手册。

我不明白的一点是,这是一种大胆的功能。使用alert,我发现对于每个大写的单词,mp2参数包含要大写的字母,并且p1看起来是null

有人能告诉我这些mp1p2参数来自哪里,以及它们是如何设置的吗?

匿名替换函数中使用的参数来自正则表达式/(^|'s)([a-z])/g中匹配的元素。匹配的元素位于方括号之间,p1是一个行首或空格,p2是一个小写字母,m只是整个匹配的正则表达式。

该函数将连接匹配的元素,并将大写字母设置为行首或空白后面的第一个字母。

输入值不会更改,因为capitalize仅用于显示,但在javascript代码中没有对此函数的调用。