AngularJs 문자열의 첫 글자를 대문자로 표시
angularjs로 문자열의 첫 글자를 대문자로 쓰고 싶다.
★★★★★★★★★★★★★★★를 사용했더니{{ uppercase_expression | uppercase}}
문자열 전체를 대문자로 변환합니다.
이 대문자 필터 사용
var app = angular.module('app', []);
app.controller('Ctrl', function ($scope) {
$scope.msg = 'hello, world.';
});
app.filter('capitalize', function() {
return function(input) {
return (angular.isString(input) && input.length > 0) ? input.charAt(0).toUpperCase() + input.substr(1).toLowerCase() : input;
}
});
<script src="https://ajax.googleapis.com/ajax/libs/angularjs/1.2.23/angular.min.js"></script>
<div ng-app="app">
<div ng-controller="Ctrl">
<p><b>My Text:</b> {{msg | capitalize}}</p>
</div>
</div>
angular/js는 사용하지 마십시오.대신 css를 사용할 수 있습니다.
css에서 클래스를 추가합니다.
.capitalize {
text-transform: capitalize;
}
그런 다음 표현식(ex용)을 html로 감싸기만 하면 됩니다.
<span class="capitalize">{{ uppercase_expression }}</span>
js는 필요 없습니다;)
부트스트랩을 사용하는 경우 도우미 클래스를 추가할 수 있습니다.
<p class="text-capitalize">CapiTaliZed text.</p>
EDIT: 링크가 다시 끊어질 경우:
텍스트 변환
텍스트 대문자 클래스가 있는 구성요소의 텍스트를 변환합니다.
소문자로 둘러싸인 경우
대문자로 표시된 텍스트
CapiTaliZed 。<p class="text-lowercase">Lowercased text.</p> <p class="text-uppercase">Uppercased text.</p> <p class="text-capitalize">CapiTaliZed text.</p>
텍스트 대문자는 각 단어의 첫 글자만 변경할 뿐 다른 문자의 대소문자는 영향을 받지 않습니다.
4에는 Angular 4+를 .titlecase
{{toUppercase | titlecase}}
파이프를 쓸 필요가 없습니다.
더 좋은 방법
app.filter('capitalize', function() {
return function(token) {
return token.charAt(0).toUpperCase() + token.slice(1);
}
});
@TrampGuy의 답변이 마음에 듭니다.
더선택입니다 CSS는 항상 좋은 선택입니다.을 사용하다text-transform: capitalize;
확실히 가야 할 길입니다.
그러나 컨텐츠가 모두 대문자인 경우에는 어떻게 해야 할까요?text-transform: capitalize;
「FOO BAR」 「FOO BAR」 「FOO BAR」 「FOO BAR」.하려면 , 「 」를 붙여 .text-transform: capitalize;
과 같이 입력합니다
<ul>
<li class="capitalize">{{ foo.awesome_property | lowercase }}</li>
</ul>
@TrampGuy's capitalize 클래스를 사용하고 있습니다.
.capitalize {
text-transform: capitalize;
}
그런 foo.awsome_property
FOO BAR, FOO BAR, Foo Bar.
공연이 끝난 후에는 Angular를 사용하지 않도록 하십시오.JS 필터는 각 식에 2회 적용되어 안정성을 확인합니다.
좋은 은 CSS를 입니다.::first-letter
으로 사용하다text-transform: uppercase;
수 .span
, 래, 래, 그, 그, ,, 용, 하, 하, 하, 하, 하, ,, ,, ,, ,, ,, ,, ,, ,, ,, ,text-transform: capitalize;
모든 단어를 대문자로 쓰는 블록 전체입니다.
예:
var app = angular.module('app', []);
app.controller('Ctrl', function ($scope) {
$scope.msg = 'hello, world.';
});
.capitalize {
display: inline-block;
}
.capitalize::first-letter {
text-transform: uppercase;
}
.capitalize2 {
text-transform: capitalize;
}
<script src="https://ajax.googleapis.com/ajax/libs/angularjs/1.2.23/angular.min.js"></script>
<div ng-app="app">
<div ng-controller="Ctrl">
<b>My text:</b> <div class="capitalize">{{msg}}</div>
<p><b>My text:</b> <span class="capitalize2">{{msg}}</span></p>
</div>
</div>
문자열에서 각 단어를 대문자로 변환하려면(진행 중 -> 진행 중) 다음과 같이 배열을 사용할 수 있습니다.
.filter('capitalize', function() {
return function(input) {
return (!!input) ? input.split(' ').map(function(wrd){return wrd.charAt(0).toUpperCase() + wrd.substr(1).toLowerCase();}).join(' ') : '';
}
});
또 다른 방법입니다.
{{some_str | limitTo:1 | uppercase}}{{some_str.substr(1) | lowercase }}
2은 Angular 2를 할 수 .{{ abc | titlecase }}
.
전체 목록은 Angular.io API를 참조하십시오.
.capitalize {
display: inline-block;
}
.capitalize:first-letter {
font-size: 2em;
text-transform: capitalize;
}
<span class="capitalize">
really, once upon a time there was a badly formatted output coming from my backend, <strong>all completely in lowercase</strong> and thus not quite as fancy-looking as could be - but then cascading style sheets (which we all know are <a href="http://9gag.com/gag/6709/css-is-awesome">awesome</a>) with modern pseudo selectors came around to the rescue...
</span>
파이프가 내장된 각도 7+
{{ yourText | titlecase }}
의 Angular 의 를 meanjs.org JS, JS에 합니다.modules/core/client/app/init.js
문장의 각 단어를 대문자로 변환하는 커스텀 필터가 필요했습니다.그 방법은 다음과 같습니다.
angular.module(ApplicationConfiguration.applicationModuleName).filter('capitalize', function() {
return function(str) {
return str.split(" ").map(function(input){return (!!input) ? input.charAt(0).toUpperCase() + input.substr(1).toLowerCase() : ''}).join(" ");
}
});
지도 기능의 공적은 @Naveen raj에게 돌아간다.
커스텀 필터를 작성하지 않는 경우는, 를 직접 사용할 수 있습니다.
{{ foo.awesome_property.substring(0,1) | uppercase}}{{foo.awesome_property.substring(1)}}
var app = angular.module("app", []);
app.filter('capitalize', function() {
return function(str) {
if (str === undefined) return; // avoid undefined
str = str.toLowerCase().split(" ");
var c = '';
for (var i = 0; i <= (str.length - 1); i++) {
var word = ' ';
for (var j = 0; j < str[i].length; j++) {
c = str[i][j];
if (j === 0) {
c = c.toUpperCase();
}
word += c;
}
str[i] = word;
}
str = str.join('');
return str;
}
});
이 문제에 대한 저만의 견해를 덧붙이자면, 저는 커스텀 디렉티브를 사용하고 싶습니다.
app.directive('capitalization', function () {
return {
require: 'ngModel',
link: function (scope, element, attrs, modelCtrl) {
modelCtrl.$parsers.push(function (inputValue) {
var transformedInput = (!!inputValue) ? inputValue.charAt(0).toUpperCase() + inputValue.substr(1).toLowerCase() : '';
if (transformedInput != inputValue) {
modelCtrl.$setViewValue(transformedInput);
modelCtrl.$render();
}
return transformedInput;
});
}
};
선언이 완료되면 다음과 같이 HTML 내에 배치할 수 있습니다.
<input ng-model="surname" ng-trim="false" capitalization>
대신 문장의 각 단어를 대문자로 쓰고 싶다면 이 코드를 사용할 수 있습니다.
app.filter('capitalize', function() {
return function(input, scope) {
if (input!=null)
input = input.toLowerCase().split(' ');
for (var i = 0; i < input.length; i++) {
// You do not need to check if i is larger than input length, as your for does that for you
// Assign it back to the array
input[i] = input[i].charAt(0).toUpperCase() + input[i].substring(1);
}
// Directly return the joined string
return input.join(' ');
}
});
문자열 입력에 필터 "capitalize"를 추가합니다(예: {{name | capitalize}).
Angular 4 또는 CLI 에서는 다음과 같이 PIPE를 작성할 수 있습니다.
import { Pipe, PipeTransform } from '@angular/core';
@Pipe({
name: 'capitalize'
})
/**
* Place the first letter of each word in capital letters and the other in lower case. Ex: The LORO speaks = The Loro Speaks
*/
export class CapitalizePipe implements PipeTransform {
transform(value: any): any {
value = value.replace(' ', ' ');
if (value) {
let w = '';
if (value.split(' ').length > 0) {
value.split(' ').forEach(word => {
w += word.charAt(0).toUpperCase() + word.toString().substr(1, word.length).toLowerCase() + ' '
});
} else {
w = value.charAt(0).toUpperCase() + value.toString().substr(1, value.length).toLowerCase();
}
return w;
}
return value;
}
}
Angular에는 문자열의 첫 글자를 대문자로 하는 'titlecase'가 있습니다.
예:
envName | titlecase
EnvName으로 표시됩니다.
보간과 함께 사용할 경우 다음과 같은 모든 공간을 피하십시오.
{{envName|titlecase}}
envName의 첫 번째 가치 문자는 대문자로 표시됩니다.
if (value){
value = (value.length > 1) ? value[0].toUpperCase() + value.substr(1).toLowerCase() : value.toUpperCase();
}
String을 두 부분으로 분할하여 각각의 대소문자를 개별적으로 관리할 수 있습니다.
{{ (Name.charAt(0) | uppercase) + "" + (Name.slice(1, element.length) | lowercase) }}
또는
{{ Name.charAt(0) | uppercase }} {{ Name.slice(1, element.length) | lowercase }}
{{capital_expression.substr(0,1).ToUpperCase() + capital_expression.substr(1) }
캐피털라이즈 기능 실행 시간은 다음과 같이 추가할 수 있습니다.
<td>{{lastName.charAt(0).toUpperCase()+ lastName.substr(1).toLowerCase()}}</td>
{{ uppercase_expression | capitaliseFirst}}
작동해야 한다
언급URL : https://stackoverflow.com/questions/30207272/capitalize-the-first-letter-of-string-in-angularjs
'programing' 카테고리의 다른 글
일반 함수의 Typscript ReturnType (0) | 2023.02.22 |
---|---|
스프링 부트: 2개의 데이터 소스 구성 및 사용 (0) | 2023.02.22 |
JavaScript를 사용하는 AJAX와 jQuery의 차이점은 무엇입니까? (0) | 2023.02.22 |
NVL과 병합의 Oracle 차이점 (0) | 2023.02.22 |
WordPress - 커스텀 투고 타입, 커스텀 롤, 커스텀 기능 (0) | 2023.02.22 |