2013-07-26 1 views
1

PHP 문자열의 첫 번째 숫자가 1인지 확인합니다. 어떻게해야합니까? 문자열이 27-34 사이에 있는지도 확인하는 방법은 무엇입니까? strlen($variable) == 27-34을 사용할 수 있습니까?PHP 문자열의 첫 번째 숫자가 1인지 확인하고 싶습니까?

감사합니다.

+1

'substr()'? '[]'? 'intval()'? 시도해 봤니? – Passerby

+0

예.하지만 첫 번째 숫자 만 확인하도록 설정하려면 어떻게해야합니까? – user2609179

+1

숙제와 같은 소리 – jjclarkson

답변

-1

Q1) 문자열의 첫 번째 숫자가 1인지 확인하고 싶습니다.

a1) preg_match("/^1/", $yourNumber). true이면 1을, 거짓이면 0을 반환합니다.

Q2) 문자열이 27-34 사이에 있는지 확인합니다.

A2) 문자열의 첫 번째 숫자는 당신이 할 수있는 일이면 if($yourNumber >= 27 && $yourNumber <= 34)

+0

감사합니다 그것을 밖으로 테스트합니다. – user2609179

+0

구문 분석 오류 : 구문 오류, 예기치 않은 'preg_match'(T_STRING) (C : \ xampp \ htdocs \ address_process.php 24 행) – user2609179

+0

yourNumber 값과 사용 된 답변을 알 수 있습니까? (A1-A1b?) –

-1

확인하려면 : 27 사이에 34 당신이 할 수있는 문자열을 확인하기위한로서

$string = "1fjiofwjoie"; 
if($string[0] == 1) 
{ 
    // First digit is 1 
} 

else 
{ 
    // First digit is not 1 
} 

을 :

당신은 문자열 길이를 의미하는 경우
if($string >= 27 && $string <= 34) 
{ 
    // Code here 
} 

, 이렇게 :

if(strlen($string) >= 27 && strlen($string) <= 34) 
{ 
    // Code here 
} 
당신이 한 번에 모두 검사를 수행하려는 경우
-1
if(substr("your_string_here",0, 1)=="1") 
echo "Yes, the first character is 1"; 

if(("the_string">27)&("the_string"<34)) 
echo "Yes, the string lies between 27 and 34"; 
1

, 당신은 다음과 같은 정규 표현식을 사용할 수 있습니다

$str = 'string to test'; 
if (preg_match('/^1.{26,33}$/', $str)) { 
    // string starts with 1, and is 27-34 characters long 
} 

내가 사용 정규 표현식은 다음과 같습니다

/  the start of the regular expression 
^  the start of the string 
1  a literal '1' 
.  any character 
{26,33} previous item repeated 26-33 times total 
$  the end of the string 
/  the end of the regular expression 

비트 코인 주소의 유효성을 검사하는 경우 3으로 시작할 수 있습니다. 그를 허용하려면 [13]과 정규 표현식에 1를 교체해야합니다 :

'/^[13].{26,33}$/' 

이 또한 적절한 주소 확인 정말 이것보다 더 철저해야하고, 복사 또는 입력을 방지하기 위해뿐만 아니라 체크섬을 확인해야합니다 있습니다 실수.

the bitcoin wiki에서 :

If you would like to validate a Bitcoin address in an application, it is advisable to use a method from this thread rather than to just check for string length, allowed characters, or that the address starts with a 1 or 3.

0

내가 잘못, 당신은 문자열의 첫 번째 자리가 1 번이고 있는지 알고 싶어하는 질문을 읽은하지 않는 한 문자열의 길이는 27 사이에 34 자입니다 .

많은 답변이 문자열의 첫 번째 문자가 아닌 문자열의 첫 번째 문자를보고 있습니다.

어쨌든 여기에는 테스터가있는 간단하고 충분한 기능이 있습니다. 모든 테스트가 통과합니다 (즉, 문자열에서 숫자가 1 인 테스트가 올바르게 결정됩니다). 빈 문자열, 숫자가없는 문자열, 짧고 긴 문자열은 모두 false를 반환합니다.

<?php 

/** 
* Is the first digit in the string the number 1 and that the string's length is between 27 and 34. 
* 
* @param string $string 
* @return bool 
*/ 
function checkString($string) 
{ 
    return preg_match('`(\d)`', $string, $matches) && $matches[1] == '1' && strlen($string) >= 27 && strlen($string) <= 34; 
} 



class tester 
{ 
    public function providePossibleStrings() 
    { 
     return [ 
      ['1', false], 
      ['A1', false], 
      ['21', false], 
      ['A21', false], 
      ['A', false], 
      ['', false], 
      ['ABCDEFGHIJKLMNOPQRSTUVWXYZ', false], 
      ['ABCDEFGHIJKLMNOPQRSTUVWXYZa', false], 
      ['ABCDEFGHIJKLMNOPQRSTUVWXYZ1', true], 
      ['ABCDEFGHIJKLMNOPQRSTUVWXYZ12', true], 
      ['ABCDEFGHIJKLMNOPQRSTUVWXYZ123', true], 
      ['ABCDEFGHIJKLMNOPQRSTUVWXYZ1234', true], 
      ['ABCDEFGHIJKLMNOPQRSTUVWXYZ12345', true], 
      ['ABCDEFGHIJKLMNOPQRSTUVWXYZ123456', true], 
      ['ABCDEFGHIJKLMNOPQRSTUVWXYZ1234567', true], 
      ['ABCDEFGHIJKLMNOPQRSTUVWXYZ12345678', true], 
      ['ABCDEFGHIJKLMNOPQRSTUVWXY01', false], 
      ['ABCDEFGHIJKLMNOPQRSTUVWXY012', false], 
      ['ABCDEFGHIJKLMNOPQRSTUVWXY0123', false], 
      ['ABCDEFGHIJKLMNOPQRSTUVWXY', false], 
      ['ABCDEFGHIJKLMNOPQRSTUVWXY', false], 
      ['ABCDEFGHIJKLMNOPQRSTUVWXY', false], 
      ['ABCDEFGHIJKLMNOPQRSTUVWXY', false], 
      ['ABCDEFGHIJKLMNOPQRSTUVWXY', false], 
      ['ABCDEFGHIJKLMNOPQRSTUVWXYZ123456789', false], 
      ['ABCDEFGHIJKLMNOPQRSTUVWXYZ0', false], 
      ['ABCDEFGHIJKLMNOPQRSTUVWXYZ02', false], 
      ['ABCDEFGHIJKLMNOPQRSTUVWXYZ023', false], 
      ['ABCDEFGHIJKLMNOPQRSTUVWXYZ0234', false], 
      ['ABCDEFGHIJKLMNOPQRSTUVWXYZ02345', false], 
      ['ABCDEFGHIJKLMNOPQRSTUVWXYZ023456', false], 
      ['ABCDEFGHIJKLMNOPQRSTUVWXYZ0234567', false], 
      ['ABCDEFGHIJKLMNOPQRSTUVWXYZ02345678', false], 
      ['ABCDEFGHIJKLMNOPQRSTUVWXYZ023456789', false], 
      ['ABCDEFGHIJKLMNOPQRSTUVWXYZ234567891', false], 
      ['ABCDEFGHIJKLMNOPQRSTUVWXYZ234567890', false], 
     ]; 
    } 

    public function testCheckString($value, $result) 
    { 
     echo($result == checkString($value) ? 'Pass' : 'Fail'), ' : ', $value, PHP_EOL; 
    } 
} 

$tester = new tester(); 
foreach ($tester->providePossibleStrings() as $testParams) { 
    call_user_func_array([$tester, 'testCheckString'], $testParams); 
} 
관련 문제