2012-03-09 2 views
0

안녕하세요이 나는 PHP로 변환하려고사용 정규식

var concatedString = concatedSubstring.replace(/\//g, '-').replace(/([0-9])([a-zA-  Z])/g,"$1-$2").replace(/[A-Za-z]/g, function(c){ 
      return c.toUpperCase().charCodeAt(0)-64; 

은 내가 무슨 짓을하는 것은 내가 더 이상 진행하지 못할

$pin = preg_replace('{/\//g}', '-', $pin); 
      $pin = preg_replace('{/([0-9])([a-zA-Z])/g}','$1-$2', $pin); 
      $pin3 = preg_replace('{/[A-Za-z]/g}', strtoupper($pin), $pin); 
      echo $pin3; 

입니다 정규식 내 정규식 코드입니다.

+1

정규식에서 '{'와 '}'를 꺼내 봤습니까? –

답변

3

너는 그 모든 것 주위에 {}이 필요하지 않습니다.

또한, 마지막 preg_replace, 당신은 [a-zA-Z] 일치하고 있고 대문자로 교체 -하지만 처음에 대문자의 경우, 교체 할 필요가 없다 : 모든

$pin = preg_replace('/\//', '-', $pin); 
$pin = preg_replace('/([0-9])([a-zA-Z])/','$1-$2', $pin); 
// only need to convert lowercase to uppercase. 
$pin3 = preg_replace('/[a-z]/', strtoupper($pin), $pin); 
echo $pin3; 
+0

preg_replace() [function.preg-replace] : 알 수없는 수정 자 'g'코드를 사용한 후에 이것을 얻고 있습니다. –

+0

수정자를 자세히 보지 않았지만 도움이 될 것입니다 : http://www.php.net/manual/en/reference.pcre.pattern.modifiers.php – Jason

+0

' preg_replace'. – Toto

1

먼저 , 당신은 당신의 정규식 주위에 중괄호가 필요하지 않습니다. 둘째로, strtoupper는 당신이 해낸 방식대로 작동하지 않을 것이지만, 당신은 멀리 떨어져 있지 않습니다.

<?php 
$pin = preg_replace('/\//', '-', $pin); 
$pin = preg_replace('/([0-9])([a-zA-Z])/','$1-$2', $pin); 
$pin3 = strtoupper($pin); 
echo $pin3; 
?> 
관련 문제