문자열 끝에서 마지막 쉼표(및 마지막 쉼표 뒤에 공백이 있을 수 있음) 제거
자바스크립트를 사용하여 쉼표가 마지막 문자이거나 쉼표 뒤에 공백만 있는 경우에만 마지막 쉼표를 제거하려면 어떻게 해야 합니까?이건 내 코드야.저는 일을 하고 있어요.하지만 그것은 벌레가 있습니다.
var str = 'This, is a test.';
alert( removeLastComma(str) ); // should remain unchanged
var str = 'This, is a test,';
alert( removeLastComma(str) ); // should remove the last comma
var str = 'This is a test, ';
alert( removeLastComma(str) ); // should remove the last comma
function removeLastComma(strng){
var n=strng.lastIndexOf(",");
var a=strng.substring(0,n)
return a;
}
마지막 쉼표와 공백이 제거됩니다.
str = str.replace(/,\s*$/, "");
정규식을 사용합니다.
그
/
정규식의 시작과 끝을 표시합니다.그
,
쉼표와 일치합니다.그
\s
는 공백 문자(스페이스, 탭 등)를 의미하며,*
0 이상을 의미합니다.그
$
끝은 문자열의 끝을 나타냅니다.
slice(슬라이스) 메서드를 사용하여 문자열에서 마지막 쉼표를 제거할 수 있습니다. 다음 예를 찾으십시오.
var strVal = $.trim($('.txtValue').val());
var lastChar = strVal.slice(-1);
if (lastChar == ',') {
strVal = strVal.slice(0, -1);
}
예는 다음과 같습니다.
function myFunction() {
var strVal = $.trim($('.txtValue').text());
var lastChar = strVal.slice(-1);
if (lastChar == ',') { // check last character is string
strVal = strVal.slice(0, -1); // trim last character
$("#demo").text(strVal);
}
}
<script src="https://cdnjs.cloudflare.com/ajax/libs/jquery/3.3.1/jquery.min.js"></script>
<p class="txtValue">Striing with Commma,</p>
<button onclick="myFunction()">Try it</button>
<p id="demo"></p>
function removeLastComma(str) {
return str.replace(/,(\s+)?$/, '');
}
유용하거나 더 나은 방법인 경우:
str = str.replace(/(\s*,?\s*)*$/, "");
다음 문자열의 모든 조합 끝을 바꿉니다.
1. ,<no space>
2. ,<spaces>
3. , , , , ,
4. <spaces>
5. <spaces>,
6. <spaces>,<spaces>
크게 향상된 답변은 마지막 쉼표뿐만 아니라 뒤에 이어지는 공백도 제거합니다.그러나 이러한 공간을 제거하는 것은 원래 문제의 일부가 아니었습니다.그래서:
let str = 'abc,def,ghi, ';
let str2 = str.replace(/,(?=\s*$)/, '');
alert("'" + str2 + "'");
'abc,def,ghi '
https://jsfiddle.net/dc8moa3k/
마지막 쉼표를 제거합니다.작업 예제
function truncateText() {
var str= document.getElementById('input').value;
str = str.replace(/,\s*$/, "");
console.log(str);
}
<input id="input" value="address line one,"/>
<button onclick="truncateText()">Truncate</button>
먼저, 마지막 문자가 쉼표인지 확인해야 합니다.존재하는 경우 제거합니다.
if (str.indexOf(',', this.length - ','.length) !== -1) {
str = str.substring(0, str.length - 1);
}
참고 str.indexOf(',', this.length - ','.length)는 str.indexOf(',', this.length - 1)로 단순화할 수 있습니다.
여기서 멀리 떨어진 곳에
var sentence="I got,. commas, here,";
var pattern=/,/g;
var currentIndex;
while (pattern.test(sentence)==true) {
currentIndex=pattern.lastIndex;
}
if(currentIndex==sentence.trim().length)
alert(sentence.substring(0,currentIndex-1));
else
alert(sentence);
마지막 쉼표를 제거할 수 있습니다.
var sentence = "I got,. commas, here,";
sentence = sentence.replace(/(.+),$/, '$1');
console.log(sentence);
마지막에 공백을 제거하고 쉼표를 사용합니다.
var str = "Hello TecAdmin, ";
str = str.trim().replace(/,(?![^,]*,)/, '')
// Output
"Hello TecAdmin"
문자열 뒤에 문자가 있더라도 문자열에서 마지막 쉼표를 제거하려면 다음과 같이 하십시오(요청한 문자와 다름).
text.replace(/,(?=[^,]*$)/, '')
text.replace(/,(?![^,]*,)/, '')
정규식 데모를 참조하십시오.세부 정보:
,(?=[^,]*$)
문자열의 끝까지 쉼표가 아닌 0자 이상의 문자로 바로 이어지는 쉼표입니다.,(?![^,]*,)
쉼표와 다른 쉼표를 제외한 0자 이상의 문자로 바로 이어지지 않는 쉼표입니다.
JavaScript 데모를 참조하십시오.
const text = '1,This is a test, and this is another, ...';
console.log(text.replace(/,(?=[^,]*$)/, ''));
console.log(text.replace(/,(?![^,]*,)/, ''));
정규식이 있든 없든.
저는 두 가지 프로세스를 제안하고 공간 제거도 고려합니다.오늘 이 문제가 발생하여 아래 코드를 작성하여 수정하였습니다.
저는 이 코드가 다른 사람들에게 도움이 되기를 바랍니다.
//With the help of Regex
var str = " I am in Pakistan, I am in India, I am in Japan, ";
var newstr = str.replace(/[, ]+$/, "").trim();
console.log(newstr);
//Without Regex
function removeSpaceAndLastComa(str) {
var newstr = str.trim();
var tabId = newstr.split(",");
strAry = [];
tabId.forEach(function(i, e) {
if (i != "") {
strAry.push(i);
}
})
console.log(strAry.join(","));
}
removeSpaceAndLastComa(str);
만약 당신이 es6를 목표로 한다면, 당신은 간단하게 이것을 할 수 있습니다.
str = Array.from( str ).splice(0, str.length - 1).join('');
이것.
Array.from(str)
문자열을 배열로 변환합니다(슬라이스할 수 있음).것이.
splice( 0 , str.length - 1 )
합니다.것이.
join('')
합니다.
그런 다음 작업을 수행하기 전에 쉼표로 문자열이 끝나는지 확인하려면 다음과 같은 작업을 수행할 수 있습니다.
str = str.endsWith(',') ? Array.from(str).splice(0,str.length - 1).join('') : str;
문제는 문자열의 마지막 쉼표를 제거하는 것이지 문자열의 마지막 쉼표를 제거하는 것이 아니라는 것입니다.그래서 마지막 문자가 ','인지 확인하려면 if를 넣고, ','이면 변경해야 합니다.
편집: 정말 그렇게 혼란스럽습니까?
'이것은 임의의 문자열입니다.'
코드는 문자열에서 마지막 쉼표를 찾고 'This'만 저장합니다. 왜냐하면 마지막 쉼표는 문자열 끝에 있는 'This' 뒤에 있기 때문입니다.
언급URL : https://stackoverflow.com/questions/17720264/remove-last-comma-and-possible-whitespaces-after-the-last-comma-from-the-end-o
'programing' 카테고리의 다른 글
jQuery: 동일한 이벤트에 대한 두 개 이상의 핸들러 (0) | 2023.08.18 |
---|---|
'a:before'와 'a:after'에 대해 ':hover' 조건을 어떻게 쓸 수 있습니까? (0) | 2023.08.13 |
파이썬에서 클래스를 확장하는 방법은 무엇입니까? (0) | 2023.08.13 |
도커 컨테이너 내부에서 프로세스가 실행되고 있는지 확인하는 방법은 무엇입니까? (0) | 2023.08.13 |
window.location.href를 사용하여 게시 데이터 전달 (0) | 2023.08.13 |