JavaScript를 사용하여 마지막 쉼표를 제거 할 수 있지만 쉼표가 마지막 문자이거나 쉼표 뒤에 공백 만있는 경우에만 어떻게해야합니까? 이것은 내 코드입니다. 나는 일하는 바이올린을 얻었다 . 그러나 버그가 있습니다.
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+)?$/, '');
}
답변
여기서 멀다
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);
답변
크게 공감 된 답변은 마지막 쉼표뿐만 아니라 뒤에 오는 공백도 제거합니다. 그러나 다음 공백을 제거하는 것이 원래 문제의 일부 가 아니 었습니다. 그래서:
let str = 'abc,def,ghi, ';
let str2 = str.replace(/,(?=\s*$)/, '');
alert("'" + str2 + "'");
'abc,def,ghi '
답변
문제는 문자열에서 마지막 쉼표가 아니라면 문자열에서 마지막 쉼표를 제거한다는 것입니다. 따라서 마지막 문자가 ‘인지 확인하고 if 인 경우 변경해야합니다.
편집 : 정말 혼란 스럽습니까?
‘이것은 임의의 문자열입니다’
코드는 문자열에서 마지막 쉼표를 찾아 ‘This’만 저장합니다. 마지막 쉼표는 문자열의 끝이 아닌 ‘This’뒤에 있기 때문입니다.
답변
마지막 쉼표를 제거 할 수 있습니다.
var sentence = "I got,. commas, here,";
sentence = sentence.replace(/(.+),$/, '$1');
console.log(sentence);