를 사용하여 문자열에서 따옴표를 제거 I는 다음과 같이 변환이 필요자바 스크립트
var string = "false";
,
var str = false;
때문에 아래 부울 값이 필요합니다.
이 이미 시도이며,
var string= data.creditAllowed;
var str= string.replace(/"/g, '\\"');
하지만이 같은 얻을 수 있고,
str = "false";
를 사용하여 문자열에서 따옴표를 제거 I는 다음과 같이 변환이 필요자바 스크립트
var string = "false";
,
var str = false;
때문에 아래 부울 값이 필요합니다.
이 이미 시도이며,
var string= data.creditAllowed;
var str= string.replace(/"/g, '\\"');
하지만이 같은 얻을 수 있고,
str = "false";
당신이 아래로 투표를하고있는 이유는이 방식 유형을 잘못 이해 한 것입니다 자바 스크립트에서 사용됩니다. 다음 코드 :
var x = "thing";
는 문자 thing
를 포함하는 문자열을 만들고, 그 변수 x
을 결합한다. 문자열에는 따옴표가 없습니다. 따옴표는 문자열을 저장하려는 파서에 대한 메시지입니다.
이 값을 콘솔에 기록 할 때, 값을 둘러싼 값을 따옴표로 묶어 문자열로 표시하므로 따옴표로 묶여 나타납니다. 이 따옴표는 저장되지 않습니다.
대체 코드가 작동하지 않는 이유는 먼저 문자열에 따옴표가 없다는 것입니다.
var y = "\"thing\"";
또는
var z = '"thing"';
는 당신은
것 그것에 따옴표 문자열이 있습니다
는 다음과 같은 쓴 경우.
true
이 포함 된 문자열을 구문 분석하면됩니다. 가장 빠른 방법은 아마도 다음과 같습니다.
function parseBool(input) {
if (input == "true") { return true; }
else if (input == "false") { return false; }
else return null; // or false, or throw exception, or whatever
}
나는 왜 값이 false 대신 "false"인지 생각해야한다고 생각합니다.
이 값은 어디에 할당되며 적절한 부울로 할당 할 수없는 이유가 있습니까?
function isStrTrueOrFalse(string) { return !string.toLowerCase().match(/false/);}
그런 식으로 "거짓 false"false를 반환하는 임의의 문자열 :
그렇지 않으면 당신은 이런 식으로 뭔가를 할 수 있습니다. 다른 문자열은 true를 반환합니다. "str"이 true이기 때문입니다. 내용이 무엇이든 상관 없습니다.
는 또한 .toLowerCase()
대신, 정규식에 i
플래그를 사용할 수 있습니다
function isStrTrueOrFalse(string) { return !string.match(/false/i);}
는 의견에 설명한 바와 같이.
'toLowerCase() '대신에 정규 표현식에서'i' 플래그를 사용할 수 있습니다 – Cerbrus
사실입니다 :) –
항상 "true"또는 "false"문자열 인 경우 '==='를 사용하여 일치시킵니다. – Joseph
'true '또는'false'에 관한 것이면'var str = (string == "true");' – Regent
큰 따옴표는 입력 문자열의 일부가 아닙니다. –