使用脚本查找第一个html标记之前的文本字符串

时间:2014-06-26 19:10:12

标签: javascript html regex

我有一个返回消息的服务。该消息可以是纯文本或html格式文本的组合。

ex1: "This is a message"

ex2: "<p> This is also a message <p/>"

ex3: "This is also a <strong> message </strong>"

我们想要做的是提出一个脚本,它将返回尽可能多的纯文本,直到第一个标记。所以在上面的例子中:

  1. 将返回&#34;这是一条消息。
  2. 将返回&#34;&#34;
  3. 将返回&#34;这也是&#34;
  4. 我不确定采用哪种方法最好。我可以使用Regex或JS来实现这一目标。我知道正则表达式可以轻松地在两个标签之间返回文本,但我正在寻找的是有点不同。提前感谢您的任何建议或帮助。

1 个答案:

答案 0 :(得分:3)

最简单的解决方案是匹配除<之外的任何内容,从字符串的开头开始:

match = subject.match(/^[^<]*/)[0];

如果在第一个HTML标记之前的评论/引用字符串中出现<,则会失败,但这可能不是问题。

JSFiddle

上进行测试

<强>解释

^      # Anchor the match to the start of the string.
[^<]   # Match any character that's not a <
*      # zero or more times (as many as possible).