문자열에서 텍스트를 제거하려면 어떻게 해야 합니까?
는 ★★★★★★★★★★★★★★★★★★★★.data-123스트링
제거할 수 요?data-123
var ret = "data-123".replace('data-','');
console.log(ret); //prints: 123
모든 항목을 폐기하려면 다음을 사용합니다.
var ret = "data-123".replace(/data-/g,'');
PS: replace 함수는 새 문자열을 반환하고 원래 문자열은 변경하지 않으므로 replace() 호출 후에 함수 반환 값을 사용합니다.
"jQuery" "jQuery" "jQuery" 입니다. JavaScript 를 할 수 .replace★★★★
var str = "data-123";
str = str.replace("data-", "");
이 함수에 정규식을 전달할 수도 있습니다.다음 예제에서는 숫자를 제외한 모든 항목을 대체합니다.
str = str.replace(/[^0-9\.]+/g, "");
하시면 됩니다."data-123".replace('data-','');, 「」로서)replace()문자열이 다음과 같은 경우 일치하는 텍스트의 첫 번째 인스턴스만 대체합니다."data-123data-"그때
"data-123data-".replace('data-','');
는 첫 번째 일치하는 텍스트만 대체합니다.그리고 당신의 출력은"123data-"
하려면 정규 .g하다
"data-123data-".replace(/data-/g,'');
그리고 당신의 출력은"123"
원본 문자열을 잘라내야 하는 문자 수를 미리 알 수 있는 경우 slice()를 사용할 수 있습니다.지정된 시작점 사이의 문자를 끝점으로 반환합니다.
string.slice(start, end);
다음은 동작의 예를 제시하겠습니다.
var mystr = ("data-123").slice(5); // This just defines a start point so the output is "123"
var mystr = ("data-123").slice(5,7); // This defines a start and an end so the output is "12"
플레인오래된 JavaScript로 충분합니다.jQuery는 다음과 같은 간단한 작업에는 필요하지 않습니다.
var myString = "data-123";
var myNewString = myString.replace("data-", "");
자세한 내용과 사용 방법에 대해서는 MDN 관련 문서를 참조하십시오.
예:-
var value="Data-123";
var removeData=value.replace("Data-","");
alert(removeData);
이게 너한테 효과가 있길 바라.
1- 문자열에 시퀀스가 포함되어 있는 경우:
let myString = "mytest-text";
let myNewString = myString.replace("mytest-", "");
답은 텍스트입니다.
2-처음 3자를 삭제할 경우:
"mytest-text".substring(3);
답은 est-text입니다.
내가 만든 이 작은 기능은 항상 나에게 효과가 있었다:)
String.prototype.deleteWord = function (searchTerm) {
var str = this;
var n = str.search(searchTerm);
while (str.search(searchTerm) > -1) {
n = str.search(searchTerm);
str = str.substring(0, n) + str.substring(n + searchTerm.length, str.length);
}
return str;
}
// Use it like this:
var string = "text is the cool!!";
string.deleteWord('the'); // Returns text is cool!!
그게 최선이라고는 할 수 없지만, 항상 효과가 있었습니다.
str.split('Yes').join('No');
그러면 해당 문자열이 원래 문자열에서 모두 대체됩니다.
C#(Sharp) 문자열에 익숙했습니다.메서드를 삭제합니다.Javascript에서는 문자열 제거 기능은 없지만 기판 기능은 있습니다.기판 함수를 한두 번 사용하여 문자열에서 문자를 제거할 수 있습니다.c# 메서드 first overload String과 마찬가지로 시작 인덱스에서 문자열 끝까지 문자를 삭제하는 함수를 만들 수 있습니다.삭제(인트 스타트)인덱스):
function Remove(str, startIndex) {
return str.substr(0, startIndex);
}
또한 c# 메서드의 second overload String과 마찬가지로 시작 인덱스와 카운트 시 다음 함수를 사용하여 문자를 제거할 수도 있습니다.삭제(인트 스타트)인덱스, int 카운트):
function Remove(str, startIndex, count) {
return str.substr(0, startIndex) + str.substr(startIndex + count);
}
이 두 가지 기능을 사용할 수도 있고 둘 중 하나를 사용할 수도 있습니다.
예:
alert(Remove("data-123", 0, 5));
출력: 123
성능
현재 2021.01.14 Chrome v87, Safari v13.1.2 및 Firefox v84에서 MacOs HighSierra 10.13.6에서 선택한 솔루션을 테스트합니다.
결과.
모든 브라우저용
- 솔루션 Ba, Cb 및 DB는 긴 문자열에 대해 고속/고속입니다.
- 솔루션 Ca, Da는 짧은 문자열에 대해 고속/고속입니다.
- 솔루션 Ab와 E는 긴 문자열 동안 느리다
- 솔루션 Ba, Bb 및 F는 짧은 문자열에 대해 느리다.
세부 사항
2가지 테스트 케이스를 수행합니다.
아래 스니펫은 Aa Ab Ba Bb Ca Cb Da Db E F 솔루션을 제시합니다.
// https://stackoverflow.com/questions/10398931/how-to-strToRemove-text-from-a-string
// https://stackoverflow.com/a/10398941/860099
function Aa(str,strToRemove) {
return str.replace(strToRemove,'');
}
// https://stackoverflow.com/a/63362111/860099
function Ab(str,strToRemove) {
return str.replaceAll(strToRemove,'');
}
// https://stackoverflow.com/a/23539019/860099
function Ba(str,strToRemove) {
let re = strToRemove.replace(/[.*+?^${}()|[\]\\]/g, '\\$&'); // regexp escape char
return str.replace(new RegExp(re),'');
}
// https://stackoverflow.com/a/63362111/860099
function Bb(str,strToRemove) {
let re = strToRemove.replace(/[.*+?^${}()|[\]\\]/g, '\\$&'); // regexp escape char
return str.replaceAll(new RegExp(re,'g'),'');
}
// https://stackoverflow.com/a/27098801/860099
function Ca(str,strToRemove) {
let start = str.indexOf(strToRemove);
return str.slice(0,start) + str.slice(start+strToRemove.length, str.length);
}
// https://stackoverflow.com/a/27098801/860099
function Cb(str,strToRemove) {
let start = str.search(strToRemove);
return str.slice(0,start) + str.slice(start+strToRemove.length, str.length);
}
// https://stackoverflow.com/a/23181792/860099
function Da(str,strToRemove) {
let start = str.indexOf(strToRemove);
return str.substr(0, start) + str.substr(start + strToRemove.length);
}
// https://stackoverflow.com/a/23181792/860099
function Db(str,strToRemove) {
let start = str.search(strToRemove);
return str.substr(0, start) + str.substr(start + strToRemove.length);
}
// https://stackoverflow.com/a/49857431/860099
function E(str,strToRemove) {
return str.split(strToRemove).join('');
}
// https://stackoverflow.com/a/45406624/860099
function F(str,strToRemove) {
var n = str.search(strToRemove);
while (str.search(strToRemove) > -1) {
n = str.search(strToRemove);
str = str.substring(0, n) + str.substring(n + strToRemove.length, str.length);
}
return str;
}
let str = "data-123";
let strToRemove = "data-";
[Aa,Ab,Ba,Bb,Ca,Cb,Da,Db,E,F].map( f=> console.log(`${f.name.padEnd(2,' ')} ${f(str,strToRemove)}`));
This shippet only presents functions used in performance tests - it not perform tests itself!
다음은 Chrome의 예시 결과입니다.
사용.match()그리고.Number()반환하다number변수:
Number(("data-123").match(/\d+$/));
// strNum = 123
위 문장이 하는 일은 다음과 같습니다.작업 중간값:
str.match(/\d+$/)- 의 끝에 임의의 길이의 숫자와 일치하는 배열을 반환합니다.str이 경우 단일 문자열 항목을 포함하는 배열을 반환합니다.['123'].Number()- 숫자 유형으로 변환합니다.어레이가 다음에서 반환되었기 때문에.match()단일 요소 포함Number()번호가 반환됩니다.
문자열 인스턴스를 모두 교체하는 또 다른 방법은 새로운(2020년 8월 현재) 메서드를 사용하는 것입니다.
첫 번째 인수로 문자열 또는 RegEx 중 하나를 받아들이고 검색된 모든 일치를 두 번째 파라미터(문자열 또는 문자열을 생성하는 함수)로 바꿉니다.
서포트에 관한 한, 기입 시점에서는, 이 방법은 IE 를 제외한 모든 주요 데스크탑 브라우저*(Opera!까지)의 최신 버전에서 채용되고 있습니다.모바일의 경우 iOSiOS 13.7+ Safari, Androidv85+ Chrome, Androidv79+ Firefox도 모두 지원됩니다.
* 여기에는 Edge/Chrome v85+, Firefox v77+, Safari 13.1+ 및 Opera v71+가 포함됩니다.
사용자가 지원되는 브라우저 버전으로 업데이트하려면 시간이 걸리지만, 이제 광범위한 브라우저가 지원되기 때문에 시간이 걸림돌이 됩니다.
참고 자료:
현재 사용하고 있는 브라우저를 아래 스니펫에서 테스트할 수 있습니다.
//Example coutesy of MDN: https://developer.mozilla.org/en-US/docs/Web/JavaScript/Reference/Global_Objects/String/replaceAll
const p = 'The quick brown fox jumps over the lazy dog. If the dog reacted, was it really lazy?';
const regex = /dog/gi;
try {
console.log(p.replaceAll(regex, 'ferret'));
// expected output: "The quick brown fox jumps over the lazy ferret. If the ferret reacted, was it really lazy?"
console.log(p.replaceAll('dog', 'monkey'));
// expected output: "The quick brown fox jumps over the lazy monkey. If the monkey reacted, was it really lazy?"
console.log('Your browser is supported!');
} catch (e) {
console.log('Your browser is unsupported! :(');
}
.as-console-wrapper: {
max-height: 100% !important;
}
루프내의 문자열을 교환하는 경우는, 반복 마다 새로운 Regex 를 개시하는 것을 확인해 주세요.이 문제는 9월 21일 현재도 Regex가 기본적으로 다른 매치를 찾을 수 없는 상태로 알려져 있습니다.이것을 처음 접했을 때, 저는 당황했습니다.
yourArray.forEach((string) => {
string.replace(new RegExp(__your_regex__), '___desired_replacement_value___');
})
그렇게 하려고 하면 다른 사람만 해도 놀라지 마세요.
let reg = new RegExp('your regex');
yourArray.forEach((string) => {
string.replace(reg, '___desired_replacement_value___');
})
const newString = string.split("data-").pop();
console.log(newString);
언급URL : https://stackoverflow.com/questions/10398931/how-to-remove-text-from-a-string
'programing' 카테고리의 다른 글
| PHP에서 중단과 계속의 차이는 무엇입니까? (0) | 2022.10.15 |
|---|---|
| UnicodeDecodeError: 'utf8' 코덱이 0의 바이트 0xa5를 디코딩할 수 없습니다. 잘못된 시작 바이트입니다. (0) | 2022.10.15 |
| mysql GROUP_CONCAT 중복 (0) | 2022.10.15 |
| MySQL이 NOT NULL 열을 추가합니다. (0) | 2022.10.15 |
| PHP의 특정 인덱스에서 foreach 루프를 시작하는 방법 (0) | 2022.10.15 |

