#javascript #jquery
#javascript #jquery
Вопрос:
У меня есть строка формата '32109 NV Santa Clara'
, которую мне нужно извлечь '32109'
, и 'Santa Clara'
в 2 разных переменных
например, строки:
'34123 NV Blue Earth'
'45167 MN San Jose'
Комментарии:
1. Всегда ли вам нужны первое и два последних слова или они различаются?
2. самый простой … например
const [postalCode, city] = '32109 NV Santa Clara'.split(/s [A-Z]{2}s /);
… регулярное выражение разбивает строку на 2 заглавные буквы asciкоторые представляют собой почтовый индекс США (аббревиатура) для любого федерального штата и территории
Ответ №1:
Вы можете использовать .split()
, как показано ниже (пример всех трех строк)
var strng = '34123 NV Blue Earth';
var arr = strng.split(/s*[A-Z]{2}s*/);
console.log(arr);
var strng1 = '45167 MN San Jose';
var arr1 = strng1.split(/s*[A-Z]{2}s*/);
console.log(arr1);
var strng2 = '32109 NV Santa Clara';
var arr2 = strng2.split(/s*[A-Z]{2}s*/);
console.log(arr2);
<script src="https://cdnjs.cloudflare.com/ajax/libs/jquery/3.3.1/jquery.min.js"></script>
Ответ №2:
Вы можете использовать следующий код,
const s = '34123 NV Blue Earth';
const a = s.split(' ');
const [x, y] = [a[0], a.slice(2).join(' ')];
Вы можете прочитать больше о соединении, разрезании.
Ответ №3:
Вы можете использовать string.match() для извлечения всех строк.
const address = "32109 NV Santa Clara";
const [match, postalCode, state, city] = address.match(/(d ) (w ) (.*)/);
console.log(postalCode);
console.log(state);
console.log(city);
Ответ №4:
Это зависит от того, как вы хотите извлечь эти данные. Что такое демилитаризатор? Пробел?
const mystring = "45167 MN San Jose";
mystring.split(' ');
// ["45167", "MN", "San", "Jose"]
Ссылка на String.split
Вы также можете использовать регулярное выражение для разделения по первому пробелу:
mystring.split(/(?<=^S )s/)
// ["45167", "MN San Jose"]