2015-10-09 3 views
2

У меня есть строка как (12.131883, -68.84942999999998) и с использованием .replace() Я хочу удалить скобки или получить значения между скобками. Простой latlon = latlon.replace('(',' '') не работает.jQuery, удаляя скобки из строки

Также попробовал это с latlon.replace(/\(.*?\)\s/g, ''), но не повезло.

Может ли кто-нибудь помочь мне здесь?

+0

Как это '" (12.131883, -68,84942999999998) «.replace ('(', '');' не работает? Любая ошибка? Я просто попробовал ее в консоли, и она работает нормально ... – Nico

+2

Используйте 'substr', 'var str = '(12.131883, -68.84942999999998)'; str.substr (1, str.length -2); ' – Tushar

+1

ИЛИ' str.replace (/ \ (| \)/g, '') 'OR' str.replace (/ [()]/g, ' ') 'OR' str.match (/ [^()]/g); 'Выберите то, что вам нравится – Tushar

ответ

2

Вы можете использовать substring:

var myString = "(12.131883, -68.84942999999998)"; 
var latlong = myString.substring(1, myString.indexOf(')')); 

Или:

var myString = "(12.131883, -68.84942999999998)"; 
var latlong = myString.substring(myString.indexOf('(') + 1, myString.indexOf(')')); 
+0

В второй код, вы предполагаете, что фигурные скобки могут быть в любом месте строки (что неверно, см. примерную строку в вопросе_), и если это так, вы просто захватываете строку между '(' и ')' Ex. '443 (123, 444) 989', Также заголовок вопроса' удаление скобок из строки', почему не просто 'str.substr (1, str.length -2)', это будет работать для рассматриваемой строки, или заменить как показано в моих комментариях – Tushar

+0

Не стесняйтесь добавлять вышеуказанные решения в ответ, (_ я думаю, что использование подстроки от 1 до длины - 2 - лучшее решение среди других) :), и, конечно, если вы думаете, что это будет улучшить ответ – Tushar

1

Вы можете получить их в массив с:

var latlon = "(12.131883, -68.84942999999998)"; 
var ll = latlon.match(/[-+]?[0-9]*\.?[0-9]+/g) 
console.log(ll) // returns ["12.131883", "-68.84942999999998"] 
+2

Почему такое сложное регулярное выражение просто удаляет фигурные скобки? 'var str = '(12.131883, -68.84942999999998)'; str.substr (1, str.length -2); ' – Tushar

+1

@Tushar - Я не думал, что это было очень сложно. Он просто тянет реальные цифры. – j08691

+2

Я имею в виду, что вы могли просто заменить '()', используя ragex 'str.replace (/ \ (| \)/g, '')'; – Tushar

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