2017-06-03 42 views
1

大寫點和空間僅點之後的下一個單詞,也許使用正則表達式+ ucfirst後..大寫點之後(也許正則表達式+ ucfirst)

preg_match('/[\s\.][a-z]/' 
$theCode = str_replace(ucfirst..... 

總之是在變量的所有數據中,僅在spaço+點之後的第一個字母中使用大寫。

$theCode = 'babab. babab babab. bababa bababa bababa. bababa babab baba'; 

出來:

$theCode = 'babab. Babab babab. Bababa bababa bababa. Bababa babab baba'; 

無論我採取什麼方法,我只是建議。

由於

+0

也許你應該添加標籤與PHP?或者你不關心語言 – Val

回答

2

對於PHP,preg_replace_callbackucfirst +

live example

$theCode = 'babab. babab babab. bababa bababa bababa. bababa babab baba'; 
$pattern = '/([a-z][^.]*)/i'; 

$result = preg_replace_callback($pattern, function($matches) { 
    return ucfirst($matches[0]); 
}, $theCode); 

echo $result; 

爲JavaScript,

function capitalizeAll(str) { 
 
    return str.replace(/([a-z])([^.]*)/gi, (a, b, c) => { 
 
     return (b || '').toUpperCase() + c; 
 
    }); 
 
} 
 

 
var theCode = 'babab. babab babab. bababa bababa bababa. bababa babab baba'; 
 

 
console.log(capitalizeAll(theCode));

+0

捕獲組中沒有必要。你只使用'$ matches [0]',所以'/ [a-z] [^。] */i' [完全可以](http://sandbox.onlinephpfunctions.com/code/497ffd7244215c51768209ef772864564965f383)。 –

+0

@DmitryEgorov你的建議是什麼讓PHP代碼更好? =) – Val

+0

PHP代碼很好,幾乎與我要發佈的內容相匹配,但您贏得了比賽:) –