2011-09-12 8 views
0
function toTitleCase(str){ 
    var styleName = $("a.monogramClassSelected").attr("styleKey"); 
     if (styleName == 'script') { 
     return str.replace(/\w\S*/g, function(txt){return txt.charAt(0).toUpperCase() + txt.substr(1).toLowerCase();}).replace(/\s/, ''); 
     } else { 
     return str.replace(/\w\S*/g, function(txt){return txt.charAt(0).toUpperCase() + txt.substr(1).toLowerCase();}); 
     } 

} 

공백을 제거하고 첫 문자를 대문자로 표기하십시오.첫 문자 만 대문자로 문자열을 사용할 수 있습니다 (정규식)

그러나 다른 기능이 필요하며 처음으로 올바르게 질문하지 않았습니다.

첫 번째 문자 만 대문자로 표기 할 수 있도록 정규 표현식을 사용해야합니다. 위의 문자열 바꾸기 메서드는 완전히 작동하지 않습니다. 사용자가 공백을 사용하여 메서드를 처리 할 수 ​​있기 때문입니다. 그래서 그들은 "To Two"를 가질 수있었습니다. 공백에 관계없이 처음 문자를 대문자로만 허용하려면 정규식을 다시 작성해야합니다. (첫 글자는 대문자로 표기하지 않아도됩니다.)

지금까지 모든 사람의 도움에 감사드립니다! 단지 공백을 제거하려면

+0

당신이지고 어떤 구문 오류? –

+0

자바 스크립트는 제목을 지원하지 않으므로이 임무는 불가능합니다. – tchrist

+0

샘플 입력 목록과 해당 대체 문자열을 제공하면 도움이됩니다. –

답변

0

이 그것을 할 것입니다 :

function UppercaseFirst(str) { 
    str = str.replace(/^\s+/, ''); 
    str = str.charAt(0).toUpperCase() + str.substr(1); 
    return str 
} 

var mystring = " this is a test"; 

alert(UppercaseFirst(mystring)); 
+0

질문보기 편집. – Jason

+0

이 편집되었습니다. 이제는 무엇을해야합니까 (공백이 처음이라도 있음) – ajax333221

0

이 나를 위해 작동합니다

function toTitleCase(str){ 
    str = str.replace(/\s[A-Z]/, ''); 
    // str = str.replace(/[A-Z]\s/, ''); 
    return str; 
} 
+0

나를 위해 작동하지 않습니다. – Jason

+0

님이 답변을 –

+0

으로 업데이트했습니다. 위의 편집을 참조하십시오. – Jason

1

이 정규 표현식 0 또는 정확히에만 문자가 대문자 다음에 하나의 공간이 나머지를 유지하면서 형태의 모든 시퀀스를 대체 (공백이 여러 개인 경우 허용)

str.replace(/\s{0,1}([A-Z])(\s*\w*)/g, '$1$2'); 

대체 문자열에서 그룹에 $ 1 및 $ 2 액세스 할 수 있습니다.

regex explaination

샘플

입력는 "실수를 한 적이있는 사람은 새로운 것을 시도하지 않는다 -. 알버트 아인슈타인 :"

대체 문자열을 "A personWho 결코 실수로 새로운 것을 시도하지 못했습니다. -AlbertEinstein :) "

대문자 앞에 0 또는 하나의 공백 대신 다중 공백을 제거하려는 경우 위의 표현에서 \s{0,1} 대신 \s*을 사용하십시오.

+0

위의 수정을 참조하십시오. – Jason

+0

답변이 업데이트되었습니다. –

+0

이 문맥에서는 작동하지 않습니다. '\t \t return str.replace (/ \ w \ S */g, function (txt) {return txt.charAt (0) .toUpperCase() + txt.substr (1) .toLowerCase();}). – Jason

관련 문제