如何替换src属性中的所有空格?

时间:2014-06-29 13:07:57

标签: php html regex

我想用%20

替换src属性中的所有空格

示例:

src="//myurl.com/example string.mp3"

src="//myurl.com/example%20string.mp3"

我正在寻找 RegEx选择器来执行此操作!如果感兴趣,我将使用Wordpress Search-Regex插件。

2 个答案:

答案 0 :(得分:2)

为了使用正则表达式来实现它的乐趣,您可以替换:

src\s*=\s*"[^" ]*\K\h|(?!^)\G[^" ]*\K\h

使用%20(将"替换为'以检查单引号字符串)。

说明(见demo here

我们的想法是匹配src="...模式的开头,直到找到空格或引号。这样,如果\G锚点(“最后一场比赛结束”)匹配,我们知道我们在相关的"..."字符串中,我们可以愉快地匹配所有空格,直到结束" < / p>

  src\s*=\s*"   # match the opening 'src="'
  [^" ]*        # match everything until a double quote or a space
  \K            # drop out what we matched so far
  \h            # match the whitespace ('\h' is a horizontal whitespace)
|
  (?!^)\G       # match at the end of the last match (not beginning of string)
  [^" ]*\K      # match and drop until a double quote or a space
  \h            # match the whitespace

为了简单起见,模式不处理转义引号。如果您需要这样做,可以将[^" ]*部分替换为(?:\\\H|[^" \\]++)*+(请参阅demo here

如果你在'字符串中有一个"...",反之亦然(如果你知道的那样),那么在一种模式中检查单引号和双引号字符串是不可行的(据我所知)不用担心,您可以使用src\s*=\s*['"][^'" ]*\K\h|(?!^)\G[^'" ]*\K\h,请参阅demo here)。

答案 1 :(得分:0)

让我们假设我们有一个字符串

var src = "//my url.com/example string .mp3"

将找到上述字符串中所有空格的正则表达式将是/ \ s / g

您可以使用

替换javascript中的所有空格
src = src.replace(/\s/g, '%20')