2014-10-20 3 views
-2

Мне нужно заменить двойные кавычки из строки, в этом случае строка объявить переменную, как показано нижеудалить двойные кавычки из строки с помощью JavaScript

var string = "false"; 

мне нужно преобразовать так,

var str = false; 

потому что Мне нужно логическое значение.

Это я уже пробовал,

var string= data.creditAllowed; 
var str= string.replace(/"/g, '\\"'); 

но я получить как это,

str = "false"; 
+0

Если вы уверены, что это всегда строка «true» или «false», просто сопоставьте ее с помощью '==='. – Joseph

+0

Если это все о 'true' или' false', вы можете просто использовать 'var str = (string ==" true ");' – Regent

+1

двойные кавычки не являются частью вашей входной строки. –

ответ

1

Причина вы время вниз проголосовали в том, что вы неправильно поняли типы путь используются в JavaScript. Следующий код:

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 
} 
+0

объяснил нижний предел – Joe

+0

Это не то, как вы разобрали случайный ввод в логическое ... – Cerbrus

+1

Хорошо. Это не тот вопрос, который задает вопрос. – Joe

1

Думаю, вам стоит подумать, почему вместо false вместо этого стоит значение «ложь».

Где назначено это значение и есть ли причина, по которой вы не можете назначить его как правильное логическое значение?

В противном случае вы можете сделать что-то вроде этого:

function isStrTrueOrFalse(string) { return !string.toLowerCase().match(/false/);} 

этак любая строка, которая является «ложь» возвращает ложь. Любая другая строка возвращает true. Это потому, что эта «str» истинна. Независимо от содержания.

Вы также можете использовать i флаг в регулярном выражении, вместо .toLowerCase():

function isStrTrueOrFalse(string) { return !string.match(/false/i);} 

Как описано в комментариях.

+2

Вы можете использовать флаг' i' в регулярном выражении вместо 'toLowerCase()' – Cerbrus

+0

Это правда :) –

Смежные вопросы