js正则表达式提取字母之间的空格。积极的看法?

时间:2015-08-27 09:29:54

标签: javascript regex lookbehind

我想匹配任何字母中的\s字符,不是数字

'abc def ghi'

应与cd之间的空格匹配fg

我认为我应该使用积极的外观,但据我所知,它在js中不具备意义。任何解决方案?

3 个答案:

答案 0 :(得分:3)

这个应该有效

(?=[^0-9]+)(\s+)(?=[^0-9]+)

或其他棘手的方法,您只需先用一些特殊文字替换条件空格,例如我使用_SPACE_

/([^0-9])(\s+)(?=[^0-9])/$1_SPACE_/

原文:

abc defg xhi abc 111 999 111 abc def

更换后:

abc_SPACE_defg_SPACE_xhi_SPACE_abc 111 999 111 abc_SPACE_def

然后,您只需搜索_SPACE_而不是条件空格。

答案 1 :(得分:1)

您可以使用拆分功能

str = str.replace(" ", "<span> </span>");

然后您可以使用每个函数放置在标记中:)

答案 2 :(得分:1)

text = text.replace(/\s+|(?:&nbsp;)+/g,function(x,i){
    if( text.charAt(i-1).match(/[a-zA-Z]/) == null && text.charAt(x.length+i).match(/[a-zA-Z]/) == null ){
        return '<span>'+x+'</span>';
    } else return x;
});

我改变了规则,白色空间不应与a-zA-Z匹配