2017-02-23 29 views
-4

Как удалить последний и первый апостроф (') из строки.Как удалить последний и первый апостроф (') из строки

У меня есть строка "'name'", и мне нужно изменить на "name" Мне не нужен символ апострофа (').

+6

Может быть '.Надеть() метод' или '.slice()' метод, или '.substring()' метод, или '.substr()' метод, или ... Что вы пробовали? – nnnnnn

+0

Добро пожаловать в SO !, пожалуйста, поделитесь своим кодом. Вы что-то пробовали. Если вы не знаете, как это сделать, попробуйте googling * как заменить значение в строке * и попытайтесь понять решения. Если после этого никто вам не поможет, мы поможем вам – Rajesh

+0

var firstApostrophe = string.indexOf ("'") var lastApostrophe = string.lastIndexOf ("'") string = string.slice (firstApostrophe, firstApostrophe + 1) .slice (lastApostrophe, lastApostrophe + 1) – noitse

ответ

-1

Вы можете использовать регулярное выражение.

var input = "'Hello Man'"; 
 

 
var output = input.replace(
 
    /^(?:')(.*)(?:')$/, 
 
    "$1" 
 
); 
 

 
console.log({output, input});

, как @nnnnnn предполагает, тот же результат может быть достигнут таким образом:

input.replace(/^'|'$/g,'')

+0

Или' input.replace (/^'(.*)'$/,'$ 1 ') '- вам не нужны дополнительные группы вокруг апострофов. Или просто 'input.replace (/^'|' $/g, '')'. – nnnnnn

+0

Как сказал мой профессор, скобки являются бесплатными и должны использоваться для улучшения удобочитаемости, '(? :)' указывает группу не захвата и является частью спецификаций регулярных выражений. Это просто другой способ сделать то же самое. – Hitmands

+0

Я знаю, что '(? :)' делает. Моя точка зрения заключалась в том, что в этом случае читать * (или, по крайней мере, я думаю, это труднее читать), чем '/^'(.*)'$/'. – nnnnnn

-1

Это должно сделать это !! Replace

let e = "'name'"; 
e.replace(/^'|'$/g,''); 

PS: К сожалению, не читал этот вопрос полностью !!

+2

Нет, этого не будет. Я оставлю вам аргумент – Rajesh

+1

, а не любое появление '' ', следует удалить только' trailing' и 'leading'. – Hitmands

+0

@Rajesh Теперь я чувствую себя идиотом за то, что не читал вопрос! : P Также Hitmands Yup !! Понял. Спасибо –

-2

var str = '"\'name\'"'; 
 
var cleanStr = str.replace(/"'|'"/g, '"'); 
 
console.log(cleanStr);

+0

Я думаю, что 'first' и' last' означают 'ведущий и конечный апостроф', оператор' g'lobal удалит все случаи. Кроме того, вы добавили «двойные кавычки» в регулярное выражение, и они не отображаются в op. – Hitmands

+0

Я сомневаюсь, что входные строки фактически содержат двойные кавычки. – nnnnnn

+0

Я воспринял это как написано. OP специально хотел получить «имя», поэтому это то, что он получил. – sideroxylon