通过javascript正则表达式纠正句子结构

时间:2011-07-24 22:17:52

标签: javascript regex

下面我sentancedesiredResultsentance。使用下面的pattern,我可以抓住需要更改为t T的{​​{1}},但我不知道该往哪里去。

t, t

如果前面的字母是小写的话,我想通过在“I”之外的大写之前添加逗号和空格来得到正确的句子。

1 个答案:

答案 0 :(得分:3)

在句子上使用.replace()并将替换函数作为第二个参数传递

var corrected = sentence.replace(
    /([a-z])\s([A-Z])/g, 
    function(m,s1,s2){  //arguments: whole match (t T), subgroup1 (t), subgroup2 (T)
        return s1+', '+s2.toLowerCase();
    }
);

至于保留大写I,有很多方法,其中之一:

var corrected = sentence.replace(
    /([a-z])\s([A-Z])(.)/g, 
    function(m,s1,s2,s3){
        return s1+((s2=='I' && /[^a-z]/i.test(s3))?(' '+s2):(', '+s2.toLowerCase()))+s3;
    }
);

但是有更多的情况会失败,例如:His name is Joe.WTF is an acronym for What a Terrible Failure.和其他许多。