Javascript 如何捕获css大写的输入字母:text transform:capitalize

Javascript 如何捕获css大写的输入字母:text transform:capitalize,javascript,jquery,html,css,Javascript,Jquery,Html,Css,我发现,当javascript捕获时,用csstext transform:capital大写的字母没有大写。我想知道解决这个问题最简单的方法是什么 演示如下: <script src="https://ajax.googleapis.com/ajax/libs/jquery/2.1.1/jquery.min.js"></script> <html> <input id="box" type="text" style="text-transform:c

我发现,当javascript捕获时,用css
text transform:capital
大写的字母没有大写。我想知道解决这个问题最简单的方法是什么

演示如下:

<script src="https://ajax.googleapis.com/ajax/libs/jquery/2.1.1/jquery.min.js"></script>

<html>
<input id="box" type="text" style="text-transform:capitalize">
<button id="showinput">type in something then press me</button>
</html>

<script>
$("#showinput").click(function(){
txt=$("#box").val();
alert(txt+"   as you can see, the first letter of each word is not capitalized!");
})
</script>

输入一些东西,然后按我
$(“#显示输入”)。单击(函数(){
txt=$(“#框”).val();
警告(txt+“如您所见,每个单词的第一个字母没有大写!”;
})

CSS文本转换属性仅转换用户在屏幕上看到的内容(与所有CSS属性一样)。它不会与JavaScript代码交互。我建议对JavaScript中的字符串应用类似的函数,例如lodash中的函数。

在js中使用正则表达式执行此操作

$(“#显示输入”)。单击(函数(){
txt=$(“#框”).val();
txt=txt.trim().replace(/\b\w{3,}/g,函数(l){
返回l.charAt(0.toUpperCase()+l.slice(1);
});
警告(txt+“如您所见,每个单词的第一个字母没有大写!”;
})

输入一些东西,然后按我

正如McMath所说,CSS文本转换不会与Javascript交互。下面是一个解决方案,它可以通过大写Javascript中的第一个字母来获得您想要的结果:

$(“#显示输入”)。单击(函数(){
txt=$(“#框”).val();
txt=txt.charAt(0.toUpperCase()+txt.slice(1);
警报(txt+“如您所见,每个单词的第一个字母都大写!”);
});

输入一些东西,然后按我

脚本

$("#showinput").click(function(){
txt=$("#box").val();
var newtxt=txt.split(" ");
var tmp=[];
for(i=0;i<newtxt.length;i++)
{
    tmp.push(newtxt[i].trim().charAt(0).toUpperCase()+ newtxt[i].slice(1));

}
//alert(tmp.join(" "));//YOU CAN USE THIS ALSO
alert(tmp.join().replace(","," ")+"   as you can see, the first letter of each word is not capitalized!");//YOU CAN USE tmp.join(" ") also
})
$(“#显示输入”)。单击(函数(){
txt=$(“#框”).val();
var newText=txt.split(“”);
var tmp=[];

对于(i=0;ii如果键入多个单词,如“hello world”,则“w”不会以您的代码大写,但谢谢。如果键入以空格开头,则与拥抱不起作用;如果键入以多个空格开头,则与拥抱不起作用。如果键入以更紧的拥抱开始,则与拥抱不起作用!…:D好的一点是先修剪一下
txt.trim()。替换(/\b\w{3,}/g,函数(l){return l.charAt(0).toUpperCase()+l.slice(1);});
@ryanpika查看我的答案是否有用。
text transform
只更改文本的外观,而不是实际值。如果有帮助,请查看我的答案。