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
'programing' 카테고리의 다른 글
| ES6에서 "엄격한 사용"을 사용하는 것은 권장되지 않습니다. (0) | 2023.01.16 |
|---|---|
| PHP에서 2개의 어레이를 연결할 수 없습니다. (0) | 2023.01.16 |
| mariadb 모듈을 가져올 수 없습니다. (0) | 2023.01.16 |
| "RuntimeError: 반복 중 사전 크기 변경" 오류를 방지하는 방법 (0) | 2023.01.16 |
| xpath를 사용하는 css 클래스 선택 (0) | 2023.01.16 |