【问题标题】:JavaScript RegEx Replace With Wildcard CharactersJavaScript RegEx 替换为通配符
【发布时间】:2015-08-26 14:33:43
【问题描述】:

我需要替换部分字符串,但我不知道需要替换的每个字符。例如,我有一个这样的字符串:

'<text align="left" fontSize="123" color="#000000">'

我需要替换字体大小后引号之间的任何值。该值可以是“123”、“12”、“0”、“xyz”或其他任何值。

我知道是这样的,但我不完全理解:

var string = '<text align="left" fontSize="999" color="#000000">',
  newSize = 18;
string = string.replace(/fontSize="(.*)"/g, 'fontSize="' + newSize + '"');

任何帮助将不胜感激。谢谢。

【问题讨论】:

  • 您想要对当前问题的解释或解决方案?
  • 最好是解决问题。对电流的解释也会有所帮助。看来我目前的方法是替换 #000000 之后的 fontSize 和 " 之间的所有内容。
  • regex101.com/r/bM6oN1/1 这可能是你想要的,你的第一个正则表达式将匹配所有到行尾...
  • document.getElementsByTagName("text")[0].setAttribute("fontsize",newsize)怎么样

标签: javascript regex string replace wildcard


【解决方案1】:

你的表达式是贪婪的,也就是说它会消耗尽可能多的字符来满足表达式,你想要的是一个非贪婪的表达式,它将在第一次出现"时停止

/fontSize="(.*?)"/g

【讨论】:

  • 谢谢。这正是我所需要的。
【解决方案2】:

这个表达式也可以使用

string = string.replace(/fontSize=.* /, ' fontSize="' + newSize + '"');

【讨论】:

    猜你喜欢
    • 2012-04-08
    • 2023-03-10
    • 2015-05-07
    • 2012-06-22
    • 1970-01-01
    • 1970-01-01
    • 2017-07-31
    • 1970-01-01
    • 2017-04-23
    相关资源
    最近更新 更多