문자열에서 숫자를 제거 하시겠습니까?
문자열에서 숫자 제거
questionText = "1 ding ?"
이 번호와 질문 번호를 바꾸고 싶습니다. 번호는 임의의 번호가 될 수 있습니다. 작동하지 않는 코드를 시도했습니다.
questionText.replace(/[0-9]/g, '');
아주 가깝습니다.
questionText = questionText.replace(/[0-9]/g, '');
replace
기존 문자열에서 작동하지 않으면 새 문자열을 반환합니다. 사용하려면 보관해야합니다!
마찬가지로 새 변수를 사용할 수 있습니다.
var withNoDigits = questionText.replace(/[0-9]/g, '');
한 번에 전체 자릿수 블록을 제거하는 마지막 트릭이지만 너무 멀리 갈 수 있습니다.
questionText = questionText.replace(/\d+/g, '');
문자열은 불변의 이유 즉, questionText.replace(/[0-9]/g, '');
그것은 자신의에 않는 일을,하지만 questionText 문자열을 변경하지 않습니다. 대체 결과를 다른 String-variable 또는 questionText 자체에 다시 할당해야합니다.
var cleanedQuestionText = questionText.replace(/[0-9]/g, '');
또는 한 번에 (사용 \d+
, Kobi의 답변 참조) :
questionText = ("1 ding ?").replace(/\d+/g,'');
그리고 당신이 그것에있는 동안 선행 (및 후행) 공백을 자르려면 :
questionText = ("1 ding ?").replace(/\d+|^\s+|\s+$/g,'');
당신은 매우 가깝습니다.
질문에 작성한 코드는 다음과 같습니다.
questionText.replace(/[0-9]/g, '');
작성한 코드는 실제로 questionText 변수를보고 원래 문자열 인 출력을 생성하지만 숫자는 빈 문자열로 바뀝니다.
그러나 원래 변수에 자동으로 다시 할당되지는 않습니다. 할당 할 대상을 지정해야합니다.
questionText = questionText.replace(/[0-9]/g, '');
누군가에게 관심이있을 수 있으므로 문제에 대해 다른 방식으로 생각할 수 있도록 추가하고 싶습니다. 여기서 관심이 있는지 확실하지 않지만 관련성이 있다고 생각합니다.
다른 방법으로 내가 의미하는 것은 "내가 찾고있는 것이 아닌 것을 제거하는 것입니다. 즉, '딩'만 원하는 경우 다음과 같이 말할 수 있습니다.
var strippedText = ( "1 ding?"). replace (/ [^ a-zA-Z] / g, '');
기본적으로 "nog a, b, c, d .... Z (모든 문자)를 제거합니다.
이것은 regex
더 효율적 으로 수행 할 수 있습니다 .
var questionText = "1 ding ?"
var index = 0;
var num = "";
do
{
num += questionText[index];
} while (questionText[++index] >= "0" && questionText[index] <= "9");
questionText = questionText.substring(num.length);
또한 보너스로 번호를 저장하므로 일부 사람들에게 유용 할 수 있습니다.
참고 URL : https://stackoverflow.com/questions/4993764/removing-numbers-from-string
'Programing' 카테고리의 다른 글
객체 내에서 objc_setAssociatedObject / objc_getAssociatedObject를 어떻게 사용합니까? (0) | 2020.11.17 |
---|---|
C # 난수 생성기는 스레드 안전합니까? (0) | 2020.11.17 |
주 창을 닫을 때 WPF 앱이 종료되지 않음 (0) | 2020.11.17 |
컨테이너 사업부가 IMG 또는 SVG 콘텐츠보다 약간 더 큰 것을 주장하는 이유는 무엇입니까? (0) | 2020.11.17 |
C #이 C ++와 같은 비 멤버 함수를 허용하지 않는 이유 (0) | 2020.11.17 |