나는했습니다에서 번호를 제거 나는이 같은 JS를 사용하여 함수를 만들 필요가이자바 스크립트 문자열 (N1, N2, ...)
var s="15,4,6,8,10,3";
같은 문자열 :
주의 : 숫자에서을 문자열은
removeNumber(4);
가 반환해야 고유 :
s="15,6,8,10,3";
,
이 :
removeNumber(15);
은 반환해야합니다 :
s="4,6,8,10,3";
나는했습니다에서 번호를 제거 나는이 같은 JS를 사용하여 함수를 만들 필요가이자바 스크립트 문자열 (N1, N2, ...)
var s="15,4,6,8,10,3";
같은 문자열 :
주의 : 숫자에서을 문자열은
removeNumber(4);
가 반환해야 고유 :
s="15,6,8,10,3";
,
이 :
removeNumber(15);
은 반환해야합니다 :
s="4,6,8,10,3";
한 가지 가능한 방법 :
var s = "15, 4, 6, 8, 10, 3";
function removeNumber(str, num) {
var reg = new RegExp('(?:\\D+|^)' + num + '(?=\\D|$)');
return str.replace(reg, '').replace(/^\D*/, '');
// or with a single replace:
// var reg = new RegExp('^' + num + '(?:\\D+|$)|\\D+' + num + '(?=\\D|$)');
// return str.replace(reg, '');
}
이이 숫자를 분리하는 공백의 수에 대해 작동합니다. 실제로, 그것은 수를 분리하는 무엇이든을 사용할 것이다.)
설명 : 주어진 번호 (다음 정규식이 만들어집니다, 그것은 42의)의 말을하자
는/(?:\D+|^)42(?=\D|$)/
이 로 '42'문자열이 있는지 확인 읽고 .. .
이러한 규칙 (즉, 언급 위해 @ Newbo.O에 명성) 424
및 442
42 캡처 방지 할 필요가있는 문자열의 끝이다.
대상 번호 앞에 오는 숫자가 아닌 기호는 숫자 자체와 함께 정규식에서 사용됩니다. 이것은 모든 상황에서 훌륭합니다. 그러나 숫자가이 문자열의 첫 번째 숫자 일 경우 복잡성이 있습니다. 실제로 숫자는 앞의 기호가 아니라 다음 기호와 함께 제거해야합니다. 이 (교대로) 하나의 정규식에 이러한 상황을 고려하여 가능하지만
는 :
/^42(?:\D+|$)|\D+42(?=\D|$)/
... 그것은 단순한 패턴으로 최종 스윕을 훨씬 쉽게 :
/^\D*/
... '문자열의 시작 부분에있는 모든 비 숫자 기호를 바꿉니다'.
이 시도 :이 검증되지 않은 시도 http://jsfiddle.net/NmU7C/
JSON.parse 대신's.split (",")'를 할 수 있습니다. 훨씬 빠르고 간단하며 JSON.parse가없는 오래된 브라우저에서도 작동합니다. – slebetman
:
function removeNumber(n, s) {
var xs = JSON.parse("[" + s + "]");
var index = xs.indexOf(n);
if (index < 0) return s;
xs.splice(index, 1);
return String(xs);
}
데모를 참조 요소를 삭제,` ""`에서
var s = "15, 4, 6, 8, 10, 3";
function removeNumber(str, num) {
var reg = new RegExp('\\b' + num + '\\b');
return str.replace(reg, '');
}
분할을 – sshashank124
먼저 다시 가입, 간단한을 검색 및 빈 문자열로 대체 할 것입니다. 둘째, 문자열 화 된 목록으로 작업하는 것을 피해야합니다. 대신 배열을 사용하십시오. – Jon