2014-10-29 50 views
0
每一行的第一个字母

我想知道我怎么能利用在JavaScript行的第一个字母就像这个PHP代码:大写使用JavaScript

<?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,我得到的文本转换后的“罗马”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例子?谢谢 !

+0

你在JavaScript端进行了哪些努力呢? – 2014-10-29 22:41:15

回答

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/

添加结构到文字会帮助你操纵它更容易

+0

这真的很有用,谢谢! – user2911849 2014-10-30 07:41:15

1

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

如何:

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

如果你想使用JS:

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

将输出:

This Is A Paragraph. 
+1

他只想把每行的首字母大写,而不是每个字。 – rjdown 2014-10-29 22:45:59

2

你可以拆分在新行文字,地图数组所以每行都会得到一个大写的第一个字母,然后加入换行符:

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

例如:

Console.log showing example

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();