需要解释这个Javascript字符串大写原型吗
使用以下代码位: CSS: JS: HTML:需要解释这个Javascript字符串大写原型吗,javascript,string,replace,Javascript,String,Replace,使用以下代码位: CSS: JS: HTML: 我惊讶地发现,即使输入文本字段在屏幕上正确显示,它的值也没有大写,所以我寻找了一种方法。上面的脚本是从一个没有提供问答功能的网站上收集的,虽然它工作得很好,但我不清楚它是如何工作的,我也找不到解释——我没有访问Javascript手册的权限 我不明白的一点是,它的功能得到了加强。使用alert我发现,对于每个大写的单词,m和p2参数都包含要大写的字母,p1似乎是null 有人能告诉我这些m、p1、p2参数来自何处以及它们是如何设置的吗?匿名替换
我惊讶地发现,即使输入文本字段在屏幕上正确显示,它的值也没有大写,所以我寻找了一种方法。上面的脚本是从一个没有提供问答功能的网站上收集的,虽然它工作得很好,但我不清楚它是如何工作的,我也找不到解释——我没有访问Javascript手册的权限
我不明白的一点是,它的功能得到了加强。使用alert
我发现,对于每个大写的单词,m
和p2
参数都包含要大写的字母,p1
似乎是null
有人能告诉我这些
m
、p1
、p2
参数来自何处以及它们是如何设置的吗?匿名替换函数中使用的参数来自正则表达式/(^ |\s)([a-z])/g中的匹配元素。匹配的元素用括号括起来,p1
是行首或空格,p2
是小写字母,m
只是整个匹配的正则表达式
该函数将合并匹配的元素,并将大写字母设置为行开头或空格后的第一个字母
输入值不会被更改,因为大写
仅用于显示,但在javascript代码中没有对该函数的调用。中对此进行了解释。感谢您简洁的回答-它告诉了我需要知道的一切。现在我已经阅读了Felix Kling指出的MDN中的项目,我现在认为我理解了@sinsedrix的答案的含义-对于regexp a p1、p2、。。。参数被创建。对吗?抱歉,现在我已经重新阅读了MDN项目,我看到我上面的评论是正确的,尽管可能写得不好。非常感谢你的帮助。
input {background-color:black; text-transform:capitalize;}
String.prototype.capitalize = function() {
return this.replace( /(^|\s)([a-z])/g , function(m,p1,p2){
return p1+p2.toUpperCase();
});
};
<input type="text" id="if1" onfocus="enterInp(this.id)" onblur="exitInp(this.id)" />