질문 : 문자열에서 여러 값으로 대체 - 타이프 라이터
var str = "I have a <animal>, a <flower>, and a <car>.";
지금 내가 원하는 위 문자열이를위한 최선의 방법을 제안 해주십시오 타이거, 로즈와 BMW
<animal> , <flower> and <car>
와 아래 교체.
저는 Typescript로 Angular 2 Application을 연구하고 있습니다.
질문 : 문자열에서 여러 값으로 대체 - 타이프 라이터
var str = "I have a <animal>, a <flower>, and a <car>.";
지금 내가 원하는 위 문자열이를위한 최선의 방법을 제안 해주십시오 타이거, 로즈와 BMW
<animal> , <flower> and <car>
와 아래 교체.
저는 Typescript로 Angular 2 Application을 연구하고 있습니다.
replacer 함수가있는 정규 표현식을 사용하여 각 일치를 평가하고 적절한 대체 코드를 반환 할 수 있습니다. 당신이 타이프 라이터를 사용하는 경우
var str = "I have a <animal>, a <flower>, and a <car>.";
function replace(source : string, replacements : { [name:string]: string }) {
return str.replace( new RegExp("<([A-z]*)>", "g"), (m) => {
return replacements[m.substring(1, m.length -1)];
});
}
console.log(replace(str, {
"animal" : "Tiger",
"flower" : "Rose",
"car" : "BMW"
}))
덜 자세하게 표현하면, 함수 본문은 다음과 같을 수 있습니다 :'return str.replace (/ <([A-z]*)>/g, m => replacement [m.substring (1, m.length - 1) ])' – Duncan
@Duncan 당신은 그 길이 더 짧습니다.하지만 길쭉한 표현 이었기 때문에 여러 줄로 더 잘 보입니다. –
당신이 let str = 'I have a <animal>, a <flower>, and a <car>.';
참고 각도 스타일 가이드의 추천 작은 따옴표와 https://www.typescriptlang.org/docs/handbook/basic-types.html에 따라 문자열을 선언해야합니다 (연속 배달 파이프 라인에 보풀을 겨 으로, 예를 들어 시행). 대신 코드에 이미 자리를 대체 할 수있는 방법을 대체 일반적인 자바 스크립트로 대체
:
의
가능한 복제 [자바 스크립트의 모든 문자열을 대체하는 방법?] (HTTPS : //stackoverflow.com/questions/1144783/how-to-replace-all-occurrences-of-a-string-in-javascript) –
@JoeClay 정상적인 문자열은 괜찮습니다.하지만 또는 또는 의 문제가 있습니다. 끈. –
AmiDeveloper
http://idownvotedbecau.se/noattempt – Sefe