Как захватить подстроку перед указанным символом jQuery или JavaScript

Я пытаюсь извлечь все до запятой. Как это сделать в JavaScript или jQuery? Я пробовал это и не работал.

1345 albany street, Bellevue WA 42344

Я просто хочу захватить уличный адрес.

var streetaddress= substr(addy, 0, index(addy, '.')); 

Ответ 1

var streetaddress= addy.substr(0, addy.indexOf(',')); 

Хотя это не лучшее место для окончательной информации о том, что делает каждый метод (сеть разработчиков mozilla, для этого лучше) w3schools.com хорош для ознакомления с синтаксисом.

Ответ 2

var streetaddress = addy.split(',')[0];

Ответ 3

попробуйте следующее:

streetaddress.substring(0, streetaddress.indexOf(','));

Ответ 4

//split string into an array and grab the first item

var streetaddress = addy.split(',')[0];

Кроме того, я бы рекомендовал называть ваши переменные с помощью верблюжьего футляра (streetAddress) для лучшей читаемости.

Ответ 5

Если вам это нравится, просто используйте RegExp:

var streetAddress = /[^,]*/.exec(addy)[0];

Ответ 6

почти то же самое, что и David G, но без анонимной функции, если вам не хочется включать его.

s = s.substr(0, s.indexOf(',') === -1 ? s.length : s.indexOf(','));

в этом случае мы используем тот факт, что второй аргумент substr является длиной, и мы знаем, что наша подстрока начинается с нуля.

верхний ответ не является общим решением из-за нежелательного поведения, если строка не содержит характер, который вы ищете.

если вы хотите правильного поведения в общем случае, используйте этот метод или метод David G, а не лучший ответ

регулярные выражения и методы разделения также будут работать, но могут быть несколько более медленными/чрезмерными для этой конкретной проблемы.

Ответ 9

var newString = string.substr(0,string.indexOf(','));

Ответ 10

Если вы хотите вернуть исходную строку нетронутой, если она не содержит символ поиска, вы можете использовать анонимную функцию (закрытие):

var streetaddress=(function(s){var i=s.indexOf(',');
   return i==-1 ? s : s.substr(0,i);})(addy);

Это можно сделать более общим:

var streetaddress=(function(s,c){var i=s.indexOf(c);
   return i==-1 ? s : s.substr(0,i);})(addy,',');

Ответ 11

Вы можете использовать Azle, чтобы получить подстроки до:

str = 'This is how we go to the place!'

az.get_everything_before(str, 'place')

Результат. Вот как мы идем к

после того, как

str = 'This is how we go to the place!'

az.get_everything_after(str, 'go')

Результат: на место!

и в между:

str = 'This is how we go to the place!'

az.get_everything_between(str, 'how', 'place')

Результат: мы идем к