배열 속에서 특정 단어가 들어간 배열에서 숫자만 뽑아오고 싶습니다.

배열 속에서 특정 단어가 들어간 배열에서 숫자만 뽑아오고 싶습니다.

QA

배열 속에서 특정 단어가 들어간 배열에서 숫자만 뽑아오고 싶습니다.

본문

게시글에 아래와 같은 배열이 있습니다.

 

대관령국수집@733/23$|바우파머스몰@664/87$|선비촌@538/209$|이화에월백하고@274/467$|이디야커피강원평창점@699/30$|휘닉스정육식당@722/0$|성주식당@497/223$|메밀꽃사랑송어회@612/106$|허생원봉평메밀국수@555/153$|한촌설렁탕평창점@645/63$

 

배열은 | 로 나뉘어져 있고 

" 업소명 @ 숫자1 / 숫자2 $ "

이렇게 구성되어 있습니다.

저는 여기에서 특정 업소명의 숫자2만 불러오려고 하는데 어렵네요.

 

예를 들어 모든 게시물이 위와 같은 배열에 각각의 숫자가 다른데 그중 "성주식당"의 "성주"가 들어간 배열값에서 숫자2만 따로 뽑아오고 싶은데 이럴 경우에는 어떤 방법을 써야 할까요?

 

고수님들의 의견을 구합니다

이 질문에 댓글 쓰기 :

답변 2

정규식으로

$content="대관령국수집@733/23$|바우파머스몰~~~";

preg_match("|성주.*/([0-9]+)\\$|U", $content , $match);
echo $match[1];

 

explode, strpos 등으로 가능 하지만 가장 간단한 것은 정규식입니다
 


<div id="my"></div>
<script>
targetString = "성주";
basicString = "대관령국수집@733/23$|바우파머스몰@664/87$|선비촌@538/209$|이화에월백하고@274/467$|이디야커피강원평창점@699/30$|휘닉스정육식당@722/0$|성주식당@497/223$|메밀꽃사랑송어회@612/106$|허생원봉평메밀국수@555/153$|한촌설렁탕평창점@645/63$";
for (i of basicString.split("$|")) {
    if (i.split("/")[0].indexOf(targetString) > -1) {
        findString = i.split("/")[1];
        break; 
    }
    else findString = "없음";
}
my.innerText = findString;
</script>

input 로 하려면 조건을 하나 더 추가해야 합니다.
빈칸인 점을 감안해서...

if (i.split("/")[0].indexOf(targetString) > -1 && hz.value.trim() != "")

이게 아마 모던 스크립트로 하는 방법이 있을 거에요. 저는 20년 전 레거시 스크립트입니다.ㅋ

답변을 작성하시기 전에 로그인 해주세요.
전체 98
QA 내용 검색

회원로그인

(주)에스아이알소프트 / 대표:홍석명 / (06211) 서울특별시 강남구 역삼동 707-34 한신인터밸리24 서관 1404호 / E-Mail: admin@sir.kr
사업자등록번호: 217-81-36347 / 통신판매업신고번호:2014-서울강남-02098호 / 개인정보보호책임자:김민섭(minsup@sir.kr)
© SIRSOFT