使用JavaScript将每行的首字母大写

时间:2014-10-29 22:38:45

标签: javascript php

我想知道如何利用JavaScript中的第一个字母大写,就像在这个PHP代码中一样:

<?php

$textParts = explode("\n", $text);
foreach ($textParts as $key => $value) {
   $textParts[$key] = ucfirst($value);
}

$text = implode("\n", $textParts);

$text="namjaga da geureochi mwo narago dareugetni
ni mameul da gajyeodo naragabeorigo maneun
namjaga da geureochi mwo"

?>

<p>
<?php echo $text; ?>
</p>

在JS中,我将文本放入&#34; Roman&#34;转型后的DIV:

<div id="Roman"> </div>

<script>

<?php include("../../tools/js/romantool.js"); ?>
function affichar() {
  document.getElementById('Roman').innerHTML = latin_to_roman(
    document.getElementById('Parol').innerHTML
  );
}
affichar();

</script>

有没有人知道我应该如前面的PHP示例那样继续做什么?谢谢!

4 个答案:

答案 0 :(得分:2)

你可以在换行符上拆分文本,映射数组,使每一行得到一个大写的第一个字母,然后用换行符连接:

text = text.split("\n").map(function(line) { 
           line = line[0].toUpperCase() + line.substr(1); 
           return line;
}).join("\n");

例如:

Console.log showing example

答案 1 :(得分:1)

如果您只是想在网页上显示。

这个怎么样:

<style>
p.uppercase {
    text-transform: capitalize;
}
</style>
<p>this is a paragraph</p>

如果你想使用JS:

$("p").css({"text-transform":"capitalize"});

将输出:

This Is A Paragraph.

答案 2 :(得分:1)

事实上,到目前为止,我会在两个建议的答案之间进行。我会使用javascript来替换带有标签的换行符,该标签会在文本周围添加结构,例如。

var str = document.getElementById('Parol').innerHTML;
str = '<span>' + str.replace(/(?:\r\n|\r|\n)/g, '</span><span>') + '<span>';
document.getElementById('Roman').innerHTML = str;

除了使用CSS以任何方式设置样式之外,你的情况都是

   span {
        display: block;
    }

    span:first-letter {
        text-transform: uppercase;
    }

这是一个小提琴

http://jsfiddle.net/58qkwezk/1/

在文本中添加结构将有助于您更轻松地操作它

答案 3 :(得分:0)

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

使用

'String'.capitalize();