【问题标题】:remove strings from variable in php从php中的变量中删除字符串
【发布时间】:2015-11-19 17:03:59
【问题描述】:

我正在为我的项目使用“AngularJS”发票模板。它将在小计文本框中显示货币符号。可以显示它,但是当我将数据输入数据库时​​,它还添加了这个(LKR-斯里兰卡卢比),我只想删除那个 LKR 并只向数据库添加值。我为此使用了以下方法,但没有奏效。谁能帮我解决这个问题?

$inoice_subTot = strstr($inoice_subTot1, 'LKR');

例如:从 LKR56.90 中删除 LKR,然后将 56.90 添加到数据库中

【问题讨论】:

    标签: php html angularjs


    【解决方案1】:

    使用substr()

    代码

    $inoice_subTot1 = 'LKR56.90'; 
    $str2 = substr($inoice_subTot1, 3);
    

    输出

    56.90
    

    这将删除变量中的前 3 个字母

    Phpfiddle Preview

    【讨论】:

    • 即使您的解决方案可以在这种情况下工作,但 OP 的真正意思是他会给出一个字符序列,他将作为输入提供,应该在输出中切片。考虑一个货币代码只有两个字符的例子
    • @SourabhKumarSharma 实际上在斯里兰卡货币格式中首先是 LKR。所以这会很好用
    【解决方案2】:
    //ltrim or trim should do the trick
    //$inoice_subTot = trim($inoice_subTot,'LKR');
    
    $inoice_subTot = ltrim($inoice_subTot,'LKR');
    

    【讨论】:

    • 欢迎来到 StackOverflow!请为您的代码添加一些解释:为什么它有效?它应该怎么做?
    【解决方案3】:

    使用 PHP 函数 trim 删除某些字符串

      $str = 'LKR56.90';
      $inoice_subTot = trim($str,"LKR");
    

    【讨论】:

      【解决方案4】:

      正则表达式可以很好地解决这个问题。模式\D*(\d+\.\d+) 应该切掉任何长度的货币符号并将金额放入\1 捕获组。我把它作为练习留给读者来实现。

      【讨论】:

        猜你喜欢
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 2021-12-08
        • 1970-01-01
        • 2011-01-18
        • 1970-01-01
        • 1970-01-01
        相关资源
        最近更新 更多