javascript中的str_replace,strstr和substr

时间:2017-07-12 09:39:29

标签: javascript php jquery

我正在处理Wordpress项目,我需要删除从placehold.it生成的图像链接,并从查询字符串中提取文本。但是,我需要实现str_replacesubstr以及strstr函数 - 但这一切都需要在javascript中完成(理想情况下是jQuery,如果有的话)。< / p>

所以这是img src:

http://via.placeholder.com/387x232/E9967A/f0b9a6?text=30ft+x+50ft

我需要将其剥离以生成以下字符串:

  

30-50

我喜欢这个,在PHP中:

str_replace(array("=","ft","+","x"),array("","","","-"),substr(strstr($text,"="),0));

但是我如何在javascript中执行上述操作?是否有可能更容易,更紧凑的方式来做我想要实现的目标?

3 个答案:

答案 0 :(得分:3)

我不会使用其中任何一种。我使用正则表达式。 什么正则表达式取决于该字符串的哪些部分不变。例如:

var result = str.match(/\d+(?=ft)/g).join("-");

搜索一系列数字后跟ft(不使用ft,通过正向前瞻断言)并将生成的匹配数组连接到字符串中以-分隔。

实例:

&#13;
&#13;
var str = "http://via.placeholder.com/387x232/E9967A/f0b9a6?text=30ft+x+50ft";
var result = str.match(/\d+(?=ft)/g).join("-");
console.log(result);
&#13;
&#13;
&#13;

对于您在想要str_replace等情况下使用的JavaScript功能,在PHP中,这里有一个列表:

  • replace - 将文字字符串或正则表达式定义的字符替换为文字替换,标记化替换或替换函数。
  • substr - 使用索引和长度获取子字符串,其中索引可以是负数,表示从结尾开始。
  • substring - 使用开始和结束索引获取子字符串。

更多:String on MDNString.prototype functions in the spec

答案 1 :(得分:1)

var size=string.split("=")[1].split("ft").join("").split("+x+").join("-");

简单地把所有内容都放在=

之后
.split("=")[1]

删除所有 ft

.split("ft").join("")

+ x + 替换为 -

.split("+x+").join("-");
//or
.replace("+x+","-");

答案 2 :(得分:0)

如果您想使用php进行操作,可以尝试使用parse_url()然后使用preg_match()从解析后的网址中获取确切的值。

示例:

<?php

$parsedUrl = parse_url('http://via.placeholder.com/387x232/E9967A/f0b9a6?text=30ft+x+50ft', PHP_URL_QUERY);

var_dump($parsedUrl);
// Output: string(16) "text=30ft+x+50ft"

$expression = preg_match('/.*?(\d+).*?(\d+)/is', $parsedUrl, $matches);

if ($expression) {
    var_dump($matches);
}

最终输出:

array(3) {
  [0]=>
  string(14) "text=30ft+x+50"
  [1]=>
  string(2) "30"
  [2]=>
  string(2) "50"
}