2013-02-01 2 views
-3

어떻게이 PHP 코드를 Javascript에 복제 할 수 있습니까 ?? 그것은 2-9999 (일련 번호)와 같은 숫자를 취해 NUMBER로 변환합니다 ... 2-999는 변환시 다른 값이됩니다. 어떻게이 짧은 PHP 함수를 Javascript로 변환 할 수 있습니까?

function esn_to_num($esn) 
{ 

    if (($tmp = explode('-', $esn))) { 

     if (sizeof($tmp) == 2 
      && my_isnum($tmp[0]) 
      && my_isnum($tmp[1]) 
     ) { 
      $esn = (($tmp[0] << 23) | $tmp[1]); 
     } else { 
      $esn = -1; 
     } 
    } else { 
     $esn = -1; 
    } 

    return $esn; 
} 

난 JS 꽤 유사하다

// dependency function 
    /***************************************************************************** 
    * CHECKS IF A STRING REPRESENTS A NUMBER 
    ******************************************************************************/ 
    function my_isnum($str, $negative=false, $decimal=false) 
    { 
     $has_decimal = false; 
     $len = strlen($str); 
     if ($len > 0) { 
      $valid = true; 
      for ($i=0; $valid && $i<$len; $i++) { 
       if (!($str[$i] >= '0' && $str[$i] <= '9')) { 
        if ($str[$i] == '-') { 
         if (!$negative || $i != 0) { 
          $valid = false; 
         } 
        } else if ($str[$i] == '.') { 
         if (!$decimal || $has_decimal) { 
          $valid = false; 
         } 
        } else { 
         $valid = false; 
        } 
       } 
      } 
     } else { 
      $valid = false; 
     } 
     return $valid; 
    } 
+4

당신은 무엇을 시도 했습니까? – str

+0

'my_isnum'이란 무엇입니까? 또한 무엇을 시도 했습니까? –

답변

1

PHP 문법 아래 의존성 기능을 추가했다.

변수를 가져와 $을 제거하고 var 키워드로 선언하십시오.

function esn_to_num(esn) { 
    var tmp = []; 
    if ((tmp = explode('-', $esn))) { 
     if (sizeof(tmp) == 2 
      && my_isnum(tmp[0]) 
      && my_isnum(tmp[1]) 
     ) { 
      esn = ((tmp[0] << 23) | tmp[1]); 
     } else { 
      esn = -1; 
     } 
    } else { 
     esn = -1; 
    } 
    return esn; 
} 

그런 다음 모든 PHP 함수를 동일한 JS 함수로 바꾸어야합니다. explode의 자바 스크립트 등가물, sizeof "조회

을 자바 스크립트 my_isnum (명확하지 네이티브 PHP 함수를) 다시 동일한 절차에 따라

편집을 :.. 당신의 업데이 트를 본 후, 나는 아마이 실현 이미 스택 오버플로 (또는 다른 곳)에있는 코드의 좋은 덩어리 인 my_isnum이 있습니다. "문자열이 숫자인지 확인하는 js 함수"를 검색하거나 여기에서 별도의 질문으로 질문하십시오.

이 모든 작업을 수행 할 수 있습니다. 크롬 자바 스크립트 콘솔, 그리고까지 반복 iterating 요 너는 오류를 멈추게된다. 특정 문제가 발생하여 붙어 있다면 Stack Overflow에 대해 물어 보는 것이 좋습니다.