在编号前添加标记或文本

时间:2013-04-01 07:58:03

标签: javascript regex

我想在此文中添加<br>

SD0000000266675 - JAIME ANDRES SAAVEDRA BETANCURTSD0000000266675 - HORACIO PALACIOS

像这样(添加br标签):

SD0000000266675 - JAIME ANDRES SAAVEDRA BETANCURT<br>SD0000000266688 - HORACIO PALACIOS

问题:文字是动态生成的。

2 个答案:

答案 0 :(得分:0)

var t = "SD0000000266675 - JAIME ANDRES SAAVEDRA BETANCURTSD0000000266675 - HORACIO PALACIOS"
var p = t.indexOf(t.split(/\s/)[0], 1);
t.substr(0, p) + '<br>' + t.substr(p)

含义:取第一个单词(直到第一个空格),在字符串中的其他位置找到它,然后插入你想要插入的任何内容。

编辑:根据您的评论,多行:

var t = "SD0000000266675 - JAIME ANDRES SAAVEDRA BETANCURTSD0000000266675 - HORACIO PALACIOSSD0000000266675 - JAIME ANDRES SAAVEDRA BETANCURTSD0000000266675 - HORACIO PALACIOSSD0000000266675 - JAIME ANDRES SAAVEDRA BETANCURTSD0000000266675 - HORACIO PALACIOSSD0000000266675 - JAIME ANDRES SAAVEDRA BETANCURTSD0000000266675 - HORACIO PALACIOSSD0000000266675 - JAIME ANDRES SAAVEDRA BETANCURTSD0000000266675 - HORACIO PALACIOS"
var d = t.split(/\s/)[0];
var s = t.split(new RegExp('(?=' + d + ')'));
s.shift();
s.join('<br/>')

(仅当保证标识符不包含任何奇怪的字符时才起作用;如果没有,则可以使用重新排版或使用RegExp.escape functions之一。

答案 1 :(得分:0)

如果Serial以SD开头并且长度至少为13,请尝试此RE(正则表达式):

Replace this:
/(SD[0-9]{13,}[\s]{0,1}-[\s]{0,1}.*?)/i
with:
<br>$1

*在php中,你可以使用preg_replace函数。*