Warning: file_get_contents(/data/phpspider/zhask/data//catemap/3/html/73.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 函数来生成字符串大小写_Javascript_Html_String - Fatal编程技术网

Javascript 函数来生成字符串大小写

Javascript 函数来生成字符串大小写,javascript,html,string,Javascript,Html,String,我需要一个函数,只使用javascript生成字符串大小写。我希望这个没有内置函数,比如split和all。请附上解释 如果我有“约翰院长”,我想把它改成“约翰院长” var myString=“你好,世界!”; var myArray=[]; var out=“” for(var i=0;i0&&index+match.length!==title.length&& match.search(smallWords)>-1&&title.charAt(索引-2)!==“:”&& (title.c

我需要一个函数,只使用javascript生成字符串大小写。我希望这个没有内置函数,比如
split
和all。请附上解释

如果我有“约翰院长”,我想把它改成“约翰院长”

var myString=“你好,世界!”;
var myArray=[];
var out=“”
for(var i=0;i
期望输出:

HelloWorld


我不想使用split或任何其他内置函数。

使用replace with regex:

str.replace(/(^ *| +)(.)/g, function(v,p1,p2){return p1+p2.toUpperCase()})
使用for循环,您可以通过以下方式执行此操作:

var u=true, r=''
for(var i=0; i < str.length; i++){
  c=str[i]
  r+=u?c.toUpperCase():c
  u=(c==' ')
}
var u=true,r=''
对于(变量i=0;i
使用替换为正则表达式:

str.replace(/(^ *| +)(.)/g, function(v,p1,p2){return p1+p2.toUpperCase()})
使用for循环,您可以通过以下方式执行此操作:

var u=true, r=''
for(var i=0; i < str.length; i++){
  c=str[i]
  r+=u?c.toUpperCase():c
  u=(c==' ')
}
var u=true,r=''
对于(变量i=0;i
另一种方式,使用:
\b

\b 匹配零宽度单词边界,例如字母和空格之间的边界。(不要与[\b]混淆)

例如,/\bno/与“在中午”中的“否”匹配/ly\b/与“可能是昨天”中的“ly”匹配

所以正则表达式可以是这样的

myString.replace(/\b(\w)/g,function(m,p1){ return p1.toUpperCase();})
还有一种方法,使用:
\b

\b 匹配零宽度单词边界,例如字母和空格之间的边界。(不要与[\b]混淆)

例如,/\bno/与“在中午”中的“否”匹配/ly\b/与“可能是昨天”中的“ly”匹配

所以正则表达式可以是这样的

myString.replace(/\b(\w)/g,function(m,p1){ return p1.toUpperCase();})

如果您将其显示为HTML,则可以使用CSS

.capitalize-all-words {
    text-transform: capitalize;
}
在你看来

<span class='capitalize-all-words'>hello world</span>
你好,世界

如果将其显示为HTML,则可以使用CSS

.capitalize-all-words {
    text-transform: capitalize;
}
在你看来

<span class='capitalize-all-words'>hello world</span>
你好,世界

希望这对您有所帮助

String.prototype.toTitleCase=function(){
var smallWords=/^(a | an | and | as | at |但是| by | en | for | if | in | nor | of | on |或| per | the | to | vs | | | | via)$/i;
返回此。替换(/[A-Za-z0-9\u00C0-\u00FF]+[^\s-]*/g,函数(匹配,索引,标题){
如果(索引>0&&index+match.length!==title.length&&
match.search(smallWords)>-1&&title.charAt(索引-2)!==“:”&&
(title.charAt(index+match.length)!='-'| | title.charAt(index-1)='-')&&
title.charAt(索引-1).search(/[^\s-]/)<0){
返回match.toLowerCase();
}
if(match.substr(1).search(/[A-Z]\../)>-1){
复赛;
}
返回match.charAt(0.toUpperCase()+match.substr(1);
});
};
document.getElementById(“rawText”).innerHTML=document.getElementById(“rawText”).innerHTML.toTitleCase()

sdfdsfsd sdfsdf awwads
希望这对您有所帮助

String.prototype.toTitleCase=function(){
var smallWords=/^(a | an | and | as | at |但是| by | en | for | if | in | nor | of | on |或| per | the | to | vs | | | | via)$/i;
返回此。替换(/[A-Za-z0-9\u00C0-\u00FF]+[^\s-]*/g,函数(匹配,索引,标题){
如果(索引>0&&index+match.length!==title.length&&
match.search(smallWords)>-1&&title.charAt(索引-2)!==“:”&&
(title.charAt(index+match.length)!='-'| | title.charAt(index-1)='-')&&
title.charAt(索引-1).search(/[^\s-]/)<0){
返回match.toLowerCase();
}
if(match.substr(1).search(/[A-Z]\../)>-1){
复赛;
}
返回match.charAt(0.toUpperCase()+match.substr(1);
});
};
document.getElementById(“rawText”).innerHTML=document.getElementById(“rawText”).innerHTML.toTitleCase()

sdfdsfsd sdfsdf awwads
这里不需要camelCase,您需要每个单词的第一个字母大写。是的,很简单,但是我如何检测array中的空格@Tushar的可能重复我想您指的是“下camelCase”,这通常是一个人在谈论编程时的意思。。。这里你不需要camelCase,你想要每个单词的第一个字母大写。是的,很简单,但是我怎么能在arrray中检测到空格@Tushar的可能重复项的可能重复项我猜你指的是“下camelCase”,这通常是一个人在谈论编程时的意思。。。这与第一个字母不匹配。这与第一个字母不匹配。