Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/javascript/442.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181

Warning: file_get_contents(/data/phpspider/zhask/data//catemap/4/regex/16.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Javascript 按顺序显示的字符的正则表达式_Javascript_Regex - Fatal编程技术网

Javascript 按顺序显示的字符的正则表达式

Javascript 按顺序显示的字符的正则表达式,javascript,regex,Javascript,Regex,对于regex来说还是比较新的,我试图找到按顺序查找字符的表达式: 例如: 给定字符串abc,我想做一个表达式,它将匹配第一个a,a之后的第一个b,b之后的第一个c,等等 i、 e.给定“abc” 大猫买香蕉、胡萝卜和鸡肉。好吧,a.*b.*c可以做这项工作。我不知道regex只能在连续的一块字符上匹配。最后,我在下面编写了自己的突出显示功能: function r(str, search) { // assumes search.length > 0

对于regex来说还是比较新的,我试图找到按顺序查找字符的表达式:

例如: 给定字符串abc,我想做一个表达式,它将匹配第一个a,a之后的第一个b,b之后的第一个c,等等

i、 e.给定“abc”


大猫买香蕉、胡萝卜和鸡肉。

好吧,
a.*b.*c
可以做这项工作。

我不知道regex只能在连续的一块字符上匹配。最后,我在下面编写了自己的突出显示功能:

function r(str, search) {
            // assumes search.length > 0
            var searchChars = search.split('');
            var search = '';
            var replacement = '';
            for(var i=0, cnt=searchChars.length; i<cnt; i++) {
                            var c = searchChars[i];
                            search += c.replace(/([.?*+^$[\]\\(){}|-])/, "\\$1") + '(.*?)';
                            replacement += '<span class="highlight">' + c + '</span>$' + (1+i);
            }
            return str.replace(new RegExp(search, 'i'), replacement);
}
函数r(str,搜索){
//假设search.length>0
var searchChars=search.split(“”);
var搜索=“”;
var替换=“”;

对于(var i=0,cnt=searchChars.length;iYou可能不需要正则表达式也能做到,您能发布您的代码吗?我试图在正则表达式中实现这一点的原因是在这个突出显示插件的上下文中使用它:它接受正则表达式来确定哪些字符应该突出显示。
*
意味着“匹配任意字符的任意数字”。从这里开始!@ioseph你想只突出显示单个字母吗?接受这个答案,因为它让我找到了正确的方向:)我想说正则表达式不适合这个任务。