Этот ответ не выбрасывает какие-либо ошибки компилятора в строгом , и я хотел, чтобы он был немного более устойчивым, обрабатывая крайние случаи, такие как дефисы (игнорировать их), подчеркивания (обрабатывать их как пробелы) другие специальные несловесные символы, такие как косые черты или точки.
Очень важно отметить переключатель /g
в конце регулярного выражения. Без этого остальная часть функции довольно бесполезна, потому что она будет адресована только первому слову, а не любым последующим.
for each ( var myText:String in ["this is your life", "Test-it", "this/that/the other thing", "welcome to the t.dot", "MC_special_button_04", "022s33FDs"] ){
var upperCaseEveryWord:String = myText.replace( /(\w)([-a-zA-Z0-9]*_?)/g, function( match:String, ... args ):String { return args[0].toUpperCase() + args[1] } );
trace( upperCaseEveryWord );
}
Выход:
This Is Your Life
Test-it
This/That/The Other Thing
Welcome To The T.Dot
MC_Special_Button_04
022s33FDs
Для художников, выполняющих копирование и вставку, доступна функция готовности к отправке:
public function upperCaseEveryWord( input:String ):String {
return input.replace( /(\w)([-a-zA-Z0-9]*_?)/g, function( match:String, ... args ):String { return args[0].toUpperCase() + args[1] } );
}