在我的文本框中,我应找到(<LessThan Symobl>
<character>
)并替换为(<LessThan Symbol <space> <character>
)
示例:
输入:
abc<xyz abc <abc
输出:
abc< xyz abc < abc
从字符串中,我应该找到( [LessThanSymbol] [character] )并替换为( [LessThanSymbol] [space] [Character] 在javascript中强>)
答案 0 :(得分:5)
您可以使用正则表达式查找后跟非空格字符的所有<
字符,并插入空格:
s = s.replace(/<([^ ])/g, '< $1');
答案 1 :(得分:2)
s = s.replace(/<(?=\S|$)/g, "< ");
这意味着什么:
.replace()
做了什么以及<
代表什么。 : - )(?=...)
是“积极向前看” - 意思是“后跟”。\S
匹配任何非 - 空白字符(空格,非中断空格,制表符,回车符和换行符以外的任何内容)。$
匹配字符串的结尾。/.../g
执行全局搜索/替换。使用前瞻可以防止您必须使用捕获组($1
),使用\S
修复换行问题,使用$
可以防止出现类似问题如果字符串以小于。
>>> "<foo < bar <\tbaz <\rquux <\nquuux <".replace(/<(?=\S|$)/g, "< ")
"< foo < bar <\tbaz <\rquux <\nquuux <"
答案 2 :(得分:1)
我发现的最好的是:
s = s.replace(/<(?!\s)(?!$)/g,'< ');
这意味着:
您还可以使用split()然后使用join():
'abc<xyz abc <abc'.split('<').join('< ')
但是这个方法存在一个问题:用非必要空间完成的跟踪字符。
'abc<xyz abc <abc<'.split('<').join('< ')
给出了这个结果
'abc< xyz abc < abc< '
答案 3 :(得分:0)
尝试类似......
var string_variable;
string_variable = "Replace text using javascript replace function within a javascript string variable";
string_variable = string_variable.replace(/javascript/g, "js");
alert(string_variable);
答案 4 :(得分:0)
我找到了答案。
s= s.replace(/<([^ \n])/g, '< $1');
它为lessthan之后的所有出现后插入空间,然后是(非空间和非新行)