Javascript匹配字符并在之间添加空格

时间:2014-12-21 09:27:15

标签: javascript regex

我有以下代码可以检测中文字符:

function test(){
    var str= '黑色大衣';
    var re1 = new RegExp("^[\u4E00-\uFA29]*$"); //Chinese character range 
    alert(str + ' ' + re1.test(str));
}
test();

你可以在这里测试http://jsfiddle.net/of79z9gg/

现在我有这样的字符串:

this is some English text中文字幕

我需要一种方法来检测上面的字符串何时有中文字符,并在英文和中文字符之间插入一个空格。像这样:

this is some English text 中文字幕

但我不知道如何实现这一目标。所以我的问题是,如何检测英文和中文字符之间的空格?

由于

1 个答案:

答案 0 :(得分:2)

你可以反过来解决这个问题。

  1. 检测ASCII字母和
  2. 在捕获的组之后插入空格。
  3. 你可以这样做:

    var s = 'this is some English text中文字幕';
    s = s.replace(/([\x00-\xFF]+)/g, "$1 ");
    //=> this is some English text 中文字幕
    

    编辑:如果您想避免插入尾随空格,那么前瞻性正则表达式

    var s = 'this is some English text中文字幕 abcd'
    s = s.replace(/([\x00-\xFF]+)(?=[^\x00-\xff])/g, "$1 ");
    //=> "this is some English text 中文字幕 abcd"