Я намагаюся витягнути все перед комою ",". Як це зробити в JavaScript або jQuery? Я спробував це і не працював ..
1345 albany street, Bellevue WA 42344
Я просто хочу схопити адресу вулиці.
var streetaddress= substr(addy, 0, index(addy, '.'));
Я намагаюся витягнути все перед комою ",". Як це зробити в JavaScript або jQuery? Я спробував це і не працював ..
1345 albany street, Bellevue WA 42344
Я просто хочу схопити адресу вулиці.
var streetaddress= substr(addy, 0, index(addy, '.'));
Відповіді:
var streetaddress= addy.substr(0, addy.indexOf(','));
Хоча це не найкраще місце для отримання остаточної інформації про те, що робить кожен метод ( для цього потрібна мережа розробників mozilla ), w3schools.com корисний для ознайомлення з вами в синтаксисі.
substr
не рекомендується; слід використовувати substring
замість developer.mozilla.org/en-US/docs/Web/JavaScript/Reference/…
var streetaddress = addy.split(',')[0];
спробуйте це:
streetaddress.substring(0, streetaddress.indexOf(','));
//split string into an array and grab the first item
var streetaddress = addy.split(',')[0];
Крім того, я рекомендую назвати свої змінні в регістрі верблюда (streetAddress) для кращої читабельності.
addy.split(',', 1)[0]
. Див. Розробник.mozilla.org/ en-US/ docs/ Web/JavaScript/ Reference/… .
const [streetAddress,] = addy.split(',');
Це корисно для випадків, коли потрібно більше одного значення, наприклад: let [callerIdName, callerId] = callerIdString.split('<');
(оригінальний формат callerIdString - MCMULLIN, PARKER <+ 1XXXXXXXXXXX>)
Якщо вам це подобається, просто скористайтеся RegExp :
var streetAddress = /[^,]*/.exec(addy)[0];
addy.split(',', 1)[0]
майже те саме, що і у відповіді Девіда Г., але без анонімної функції, якщо ви не хочете включати її.
s = s.substr(0, s.indexOf(',') === -1 ? s.length : s.indexOf(','));
в цьому випадку ми використовуємо той факт, що другий аргумент substr
- це довжина, і що ми знаємо, що наша підрядка починається з 0.
найвища відповідь не є загальним рішенням через небажану поведінку, якщо рядок не містить символу, який ви шукаєте.
якщо ви хочете правильної поведінки в загальному випадку, використовуйте цей метод або метод Девіда Г., а не верхню відповідь
Методи регулярного вираження та спліт також працюватимуть, але можуть бути дещо повільнішими / надмірними для цієї конкретної проблеми.
Ви також можете використовувати shift()
.
var streetaddress = addy.split(',').shift();
Згідно з веб-документами MDN:
shift()
Метод видаляє перший елемент з масиву і повертає цей елемент віддаленого. Цей метод змінює довжину масиву.
https://developer.mozilla.org/en-US/docs/Web/JavaScript/Reference/Global_Objects/Array/shift
var streetaddress = addy.substr(0, addy.indexOf('.'));
(Ви повинні прочитати підручник javascript , особливо частина про функції String )
Якщо ви хочете повернути початкову рядок недоторканою, якщо вона не містить символу пошуку, ви можете використовувати анонімну функцію (закриття):
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,',');
Ви можете використовувати регулярний вираз, оскільки це дасть вам рядок, якщо він відповідає вимогам. Код буде приблизно таким:
const address = "1345 albany street, Bellevue WA 42344";
const regex = /[1-9][0-9]* [a-zA-Z]+ [a-zA-Z]+/;
const matchedResult = address.match(regex);
console.log(matchedResult[0]); // This will give you 1345 albany street.
Отже, щоб розбити код. [1-9][0-9]*
в основному означає, що перше число не може бути нулем і повинно бути числом між, 1-9
а наступне число може бути будь-яким числом 0-9
і може виникати нуль або більше разів, оскільки іноді число становить лише одну цифру, а потім воно відповідає пробілу. [a-zA-Z]
в основному відповідає всіма великими літерами малими літерами і має відбуватися один чи кілька разів, і це повторюється.
Ви можете використовувати 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')
Результат : ми переходимо до
addy.split(',', 1)[0]