3

我有以下 div。其中的文本将是动态的。

<div class="full_name">Libin Babu</div>

我希望结果为Libin B.

那就是我想将第二个名称修剪为其第一个字母,然后是一个“点”。对 CSS 或 jQuery 有任何帮助吗?我更喜欢css解决方案。

谢谢。

4

3 回答 3

6

您可以使用替换/正则表达式:

"Libin Babu".replace(/^(\S+)\s+(\S).*/, '$1 $2.')
// "Libin B."

要将其替换到位,您可以使用:

$('.full_name').each(function (d, div) {
    $(div).text($(div).text().replace(/^(\S+)\s+(\S).*/, '$1 $2.'));
});

正则表达式解释:

/          // Regex start
  ^        // Beggining of the string
  (\S+)    // One or more non-whitespace characters in group $1
  \s+      // One or more whitespace characters
  (\S)     // Exactly one non-whitespace character in group $2
  .*       // Any number of any characters
/          // Regex end
于 2013-10-25T08:33:20.523 回答
0
var str = $('#div').text();
var ret = str.split(" ");
your required value = ret[0] + ' ' + ret[1].charAt(0);

但是,您需要验证第二个字符串长度是否 >= 1。

于 2013-10-25T08:48:37.003 回答
0
You can use java script substring. example. 

Script (place this in header section)
-----------------------------
<script language="javascript">
    function splitword(word){
        var your_str = word;
        var str1 = your_str.substr(0,your_str.indexOf(' '));
        var str2 = your_str.substr(your_str.indexOf(' ')+1);
        var str2 = str2.substr(0,1);    
        alert(str1+" "+str2+".");   
    }
</script>


HTML (place this in body section)
--------------------------------
<div class="full_name">Libin Babu</div>
<input type="button" value="Split" onclick="splitword('Libin Babu');" />
于 2013-10-25T08:50:35.097 回答