† bbbb
‡ cccc"我想用分隔符
后跟一个特殊字符来拆分这个字符串。为此,我使用以下代码:string.split(/
&#?[a-zA-Z0-9]+;/g);我得到了我需要的东西,除了我丢失了分隔符。下面是示例:如何保留分隔符?">
我有一个字符串:
var string = "aaaaaa<br />† bbbb<br />‡ cccc"
我想用分隔符<br />
后跟一个特殊字符来拆分这个字符串。
为此,我使用以下代码:
string.split(/<br \/>&#?[a-zA-Z0-9]+;/g);
我得到了我需要的东西,除了我丢失了分隔符。下面是示例:http://jsfiddle.net/JwrZ6/1/
如何保留分隔符?
发布于 2012-08-17 08:01:56
使用(positive) lookahead,以便正则表达式断言特殊字符存在,但实际上并不匹配它:
string.split(/<br \/>(?=&#?[a-zA-Z0-9]+;)/g);
将其付诸实践:
var string = "aaaaaa<br />† bbbb<br />‡ cccc";
console.log(string.split(/<br \/>(?=&#?[a-zA-Z0-9]+;)/g));
发布于 2012-08-17 08:09:48
如果将分隔符放在括号中,它将是返回数组的一部分。
string.split(/(<br \/>&#?[a-zA-Z0-9]+);/g);
// returns ["aaaaaa", "<br />†", "bbbb", "<br />‡", "cccc"]
根据您希望保留的部分,更改您匹配的子组
string.split(/(<br \/>)&#?[a-zA-Z0-9]+;/g);
// returns ["aaaaaa", "<br />", "bbbb", "<br />", "cccc"]
您可以通过忽略字母string.split(/()&#?a-z0-9+;/gi)的大小写来改进表达式;
您可以像这样匹配预定义的组:\d
等于[0-9]
,\w
等于[a-zA-Z0-9_]
。这意味着您的表达式可能如下所示。
string.split(/<br \/>(&#?[a-z\d]+;)/gi);
发布于 2015-10-21 06:43:07
在这里也回答了JavaScript Split Regular Expression keep the delimiter
在正则表达式示例中使用(?=pattern)先行模式
var string = '500x500-11*90~1+1';
string = string.replace(/(?=[$-/:-?{-~!"^_`\[\]])/gi, ",");
string = string.split(",");
这将为您提供以下结果。
[ '500x500', '-11', '*90', '~1', '+1' ]
也可以直接拆分
string = string.split(/(?=[$-/:-?{-~!"^_`\[\]])/gi);
给出相同的结果
[ '500x500', '-11', '*90', '~1', '+1' ]
https://stackoverflow.com/questions/12001953
复制相似问题