【问题标题】:convert javascript (regex) function to php将javascript(正则表达式)函数转换为php
【发布时间】:2011-06-24 13:44:19
【问题描述】:

当在输入中按下一个键时,我会调用它的值

.trim().replace(/ /g, '.').replace(/[^\w .-]/gi, '').toLowerCase();

我想要做的是,当值被提交到服务器时,我想做一个函数来获取值,在它上面运行这个函数的 php 版本,如果新字符串与原始字符串不同字符串返回 false,否则返回 true。

那么,上面这行代码的 php 等效项是什么?

显然我可以使用strtolower(str_replace(' ', '.', trim($value)))

这意味着我只需要等于.replace(/[^\w .-]/gi, '')

【问题讨论】:

    标签: php javascript regex function


    【解决方案1】:
    preg_replace('/[^\w .-]/', '', $subject);
    

    注意: php 中不需要全局标志 g。 \w 不需要标志 i。

    附带说明:您实际上不需要字符类中的空格,因为您已经删除了空格。

    【讨论】:

      【解决方案2】:

      会不会是 preg_replace(pattern, replacement)?

      http://php.net/manual/en/function.preg-replace.php

      【讨论】:

      • @Hailwood:如果添加分隔符,是的。谷歌搜索php regular expression 透露:regular-expressions.info/php.html 我建议看看它。
      • 应该的。这是 PCRE 的语法参考(用于 preg_ 函数):regextester.com/pregsyntax.html
      • 就像 Felix 说的那样,你需要将它记为字符串文字(JavaScript 有 Regex 文字;PHP 没有),所以只需用 ' 引号括起来。
      【解决方案3】:

      看起来像是您自己找到的strtolowertrim。要使用正则表达式替换某些内容,只需使用 preg_replace(如果替换也应该是正则表达式,则使用 preg_filter)。

      取决于你使用的 php 版本,还有ereg_replace,但你不应该依赖它,因为它已被弃用。如果可能,请使用 preg_replace/preg_filter。

      【讨论】:

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