我的输入字符串为<img src="hello"/>
,我必须仅保留img
和hello
。
我的正则表达式是:
input = src.split(/<|\s+src="|"\/>/g);
...但我得到input=["", "img", "hello", ""]
而不是input=["img", "hello"]
。
在线regexp javascript拆分服务向我显示正确的结果,但真正的javascript没有。
如何解决?
答案 0 :(得分:1)
当您尝试通过RegExp进行拆分时,当脚本发现字符串中的RegExp时,它会将新元素推送到数组。如果您尝试使用普通字符串进行拆分,则情况相同:
input = 'xxx';
result = input.split('xxx'); // result = ['', 'xxx', '']
result2 = input.split('x'); // result2 = ['', '', '', '']
所以让我们在字符串上执行Regexp:
input = '<img src="hello"/>';
reg = /<(.*) src="(.*)"\/>/g;
result = reg.exec(input); // result = ['<img src="hello"/>', 'img', 'hello']