programing

JavaScript에서 지정된 문자 앞에 있는 하위 문자열을 어떻게 잡습니까?

nicegoodjob 2023. 1. 16. 20:21
반응형

JavaScript에서 지정된 문자 앞에 있는 하위 문자열을 어떻게 잡습니까?

쉼표 앞에 있는 모든 것을 추출하려고 합니다.JavaScript 또는 jQuery에서 이를 수행하려면 어떻게 해야 합니까?이거 해봤는데 안 되더라고요.

1345 albany street, Bellevue WA 42344

주소만 알고 싶어요

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

각 방법에 대한 명확한 정보를 얻을 수 있는 최적의 장소는 아니지만(개발자 네트워크를 구축하는 것이 좋습니다), 구문을 소개하려면 w3schools.com가 좋습니다.

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];

또한 가독성을 높이기 위해 변수 이름을 camel-case(streetAddress)로 지정할 것을 권장합니다.

짧게 하려면 RegExp를 사용하십시오.

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

데이비드 G의 답변과 거의 비슷하지만 익명의 함수는 포함하지 않을 수 있습니다.

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

이 경우, 우리는 두 번째 주장이라는 사실을 이용한다.substr길이이며 서브스트링이 0에서 시작됨을 알 수 있습니다.

문자열에 찾고 있는 문자가 포함되어 있지 않은 경우 바람직하지 않은 동작으로 인해 상위 답변은 일반 솔루션이 아닙니다.는 범용 솔루션이 아닙니다.

일반적인 상황에서 올바른 행동을 원한다면, 톱 답안이 아닌 이 방법이나 데이비드 G의 방법을 사용하세요.

regex 및 split 메서드도 동작합니다만, 이 특정의 문제에 대해서는, 다소 느리거나 오버킬 할 가능성이 있습니다.

를 사용할 수도 있습니다.

var streetaddress = addy.split(',').shift();

MDN Web Docs에 따르면:

메서드는 배열에서 첫 번째 요소를 제거하고 제거된 요소를 반환합니다.이 메서드는 어레이 길이를 변경합니다.

https://developer.mozilla.org/en-US/docs/Web/JavaScript/Reference/Global_Objects/Array/shift

var newString = string.substr(0,string.indexOf(','));
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,',');

regex 를 사용할 수 있습니다.요건과 일치하는 경우 이 문자열이 제공되기 때문입니다.코드는 다음과 같습니다.

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]*기본적으로 첫 번째 숫자는 0이 될 수 없으며 그 사이의 숫자여야 한다는 것을 의미합니다.1-9그리고 다음 번호는 다음 번호의 임의의 번호일 수 있습니다.0-90회 이상 발생할 수 있습니다.숫자가 1자리일 때 공백과 일치할 수 있습니다. [a-zA-Z]는 기본적으로 모든 대문자와 작은 글자를 일치시켜 1회 이상 반복해야 합니다.

콤마가 존재하지 않는 경우의 검출이 걱정되는 경우는, 다음과 같이 실시할 수 있습니다.

let end = addy.indexOf(",") >= 0 ? addy.indexOf(",") : addy.length;
let streetaddress = addy.substr(0, end);

아무도 그것이 한 줄로 가야 한다고 말하지 않았다.

언급URL : https://stackoverflow.com/questions/9133102/how-to-grab-substring-before-a-specified-character-in-javascript

반응형