替换PHP中的第一个字符

5

我想检查文本框中的用户输入。如果第一个字符是零,则会将其替换为+63。但它不应该替换字符串中的所有零。我已经在网站上搜索过了,但大多数都是关于替换所有出现的内容。非常感谢!


等一下,PHP还是JavaScript?你收到了很多JS的回答,因为这就是你最初的问题。 - Morgon
9个回答

10
在PHP中:
<?php 
$ptn = "/^0/";  // Regex
$str = "01234"; //Your input, perhaps $_POST['textbox'] or whatever
$rpltxt = "+63";  // Replacement string
echo preg_replace($ptn, $rpltxt, $str);
?>

会输出:

+631234

当然,您需要验证输入和一切,但这就是在提交后替换它的方法。


9

JavaScript解决方案

var str = "000123";
var foo = str.replace(/^0/,"+63");
alert(foo);

基本正则表达式

  • ^ - 匹配字符串的开头
  • 0 - 匹配数字零

PHP解决方案

$string = '000123';
$pattern = '/^0/';
$replacement = '+63';
echo preg_replace($pattern, $replacement, $string);

对不起,我在谈论 PHP,我错误地提出了一个 JavaScript 的问题。 - Brandon Young

1
我建议如果你能的话,尽量避免在编程中使用正则表达式,因为它会造成性能开销。在PHP中很容易不用正则表达式实现相同的功能:
if($str[0] == "0"){
    $str = substr_replace($str,'+63',0,1);
}

1

类似这样:


if(oldStr.charAt(0) == "0") {
  newStr= oldStr.replace(oldStr.charAt(0), "+63");
}

顺便说一下,这是JS解决方案。


@roman 真的吗....我猜那是后来添加的...否则你觉得为什么会有这么多JS相关的答案...只是为了获得负评吗.....? - Sudhir Bastakoti
请问您能否添加一下这是JS版本,这样我就可以重新投票了。 - Roman Podlinov

0
如果我理解得正确,这应该适用于您:
<input type="text" id="txt" value="0 is the score" />

Javascript:

var str = document.getElementById("txt").value;
if(str[0] === '0') {
 document.getElementById("txt").value = "63" + str.substring(1);
}

查看演示http://jsfiddle.net/rZ3vm/

还可以查看javascript中的字符串函数子字符串函数。


0
var str = "000123";
var foo = str.charAt(0).replace("0","+63") + str.substr(1);
alert(foo);

0

类似这样的东西...

var string = "0230234";

var newString = string.indexOf('0') == 0 ? string.substring(1) : string;

newString = "+63"+newString 

alert(newString); // +63230234

0

0
 $numbers='012345';

1. 首先检查第一个数字是否为零,

 if (preg_match('/^0/', $numbers))

2. 如果为零,则删除零并将所需数据与变量相加

$str=ltrim ($numbers, '0');
$mobile ='+63'.$str;

因此,输出将会是:

          +6312345

网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接