【问题标题】:Use string in match [duplicate]在匹配中使用字符串 [重复]
【发布时间】:2015-03-13 08:38:30
【问题描述】:

您好,我有一个脚本,其中我有一个带有元描述的文本区域,我有一个输入文本字段,我在其中放置关键字。然后我打印比赛,到目前为止我已经制作了这个脚本:

var countDescription = tinymce.get('myTextEditor').getContent();
var count =  (countDescription.match(/is/g) || []).length;

而且效果很好,但我的问题不是匹配单词“is”,而是希望它匹配我的字符串“u”

我尝试过类似的方法:

var count =  (countDescription.match("/" +u, "/g") || []).length;

但它真的不起作用..

希望有人能帮帮我。

【问题讨论】:

  • 我不明白你的尝试背后的原因是什么。
  • 我假设 u 是一个变量,因此是重复的,但你确实写了 string u,如果它只是一个字符串,它应该很明显 countDescription.match(/u/g) 匹配文字 u ?
  • 它是一个带有单词的字符串。例如你可以是服务、宝石、支持、关于我们等等

标签: javascript regex match


【解决方案1】:

你需要在这里使用RecExp对象:

var count = (countDescription.match(new RegExp(u, 'g')) || []).length;

其中变量u 包含您要匹配的字符串。

PS:确保u 没有任何特殊的正则表达式元字符。否则,您将需要逃脱它们。

【讨论】:

  • 感谢这工作太棒了!很简单,我已经用了几天了。非常感谢!
  • 知道我是怎么做到的,所以它必须是一个词吗?类似 var count = (countDescription.match(new RegExp('\b' + u + '\b', 'g')) || []).length;
  • 抱歉回复晚了,刚上线。它将是:countDescription.match(new RegExp("\\b" + u + "\\b", 'g'))
  • 效果很好。非常感谢。标记为已回答:-)
猜你喜欢
  • 2018-06-15
  • 2015-03-08
  • 1970-01-01
  • 1970-01-01
  • 2021-02-25
  • 1970-01-01
  • 2016-10-12
  • 1970-01-01
  • 2020-11-28
相关资源
最近更新 更多