2013-03-31 4 views
0

이것은 매우 간단 할 수 있지만 그걸로는 어려움을 겪고 있습니다. 다음 코드를 고려하십시오JavaScript는 문자열에서 정규식을 반환합니다.

, 숫자가 아닌 모든 문자를 제거하거나 string에서 강조하고 대문자로 해당 문자열을 변환하는 것입니다 내가하고 싶은
var string = 'testingT#$^%#$ESTING__--232' 
string = string.match(/^\w*$/) 
if (string != null) 
{ 
    string = string.join('') 
    string = string.toUpperCase() 
} 
$('#my-input').val(string) 

.

지금까지 나는 특수 문자를 추가하지 않는 경우가 완벽하게 작동한다는했지만 내가 - 또는 그것에 ^을 추가 할 때, 예를 들어, 당신은이 작업을 수행 할 수 있습니다 #my-input

답변

3

에서 모든 내용이 삭제 한 단계 : 또한

string = string.replace(/[^\w]/g, '').toUpperCase(); 
console.log(string); //=> "TESTINGTESTING__232" 
+0

이것은 완벽하게 작동합니다. – Pacha

1
var string = string.replace(/[^a-zA-Z_0-9]/g,'').toUpperCase() 

, 당신은 유니 코드를 필요합니까? 내 정규식은 예를 들어 åÉø가 아닌 a-z와 만 일치합니다.

1

정규 표현식에 'global'플래그를 사용해야하고 일치 제한을 제거해야합니다.

var str = 'testingT#$^%#$ESTING__--232'; 
str = str.match(/\w+/g);  
if (str !== null) 
{ 
    str = str.join(''); 
    str = str.toUpperCase(); 
} 
$('#my-input').val(str); 
관련 문제