Извлечение строк с помощью разделителя ‘пробел’

#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"]