在Php Code中使用Regex

时间:2012-03-09 06:45:15

标签: php javascript regex

这是我的正则表达式代码

 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; 

我正在尝试将其转换为PHP正则表达式我所做的是

 $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;

我无法继续前进。

2 个答案:

答案 0 :(得分: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;

答案 1 :(得分:1)

首先,你不需要你的正则表达式周围的花括号。第二,strtoupper不会像你做的那样工作,但你离它不远。

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