正则表达式Javascript:删除文字

时间:2016-06-05 11:16:21

标签: javascript regex

我想这个问题对于专家来说非常简单,但我无法想出这个问题(甚至没有通过stackoverflow& google阅读):

我想删除所有字母数字和变音符号(和双S)单个字符(即,如果不可能,则用空格包围)。在这里我尝试了:

    var a = "text 0 1 2 3 a 4 text text";
    a = a.replace(/\b\s+[a-zA-Z0-9äöüÄÖÜß]\s+\b/g, ' ')
    a = a.replace(/\s\s+/g, ' ') + "\n" //remove double spaces
    alert(a)

我得到了什么:text 1 3 4 text text 预期输出:text text text

另见:Fiddle snippet

编辑:根据评论感谢@ stanislav-Šolc

更新了我的尝试

1 个答案:

答案 0 :(得分:1)

积极的向前看(?=)可以帮到这里。

var a = "text 0 ä 1 ë 2 i      text ";
a = a.replace(/ [a-zA-Z0-9äëïöÄËÜÏÖ](?= )/g, '');
a = a.replace(/  +/g, ' ');
alert(a);

第一个正则表达式将查找空格和字符,后跟空格。

所以它将返回:

text text

如果你想更多地删除单个字符,那么可以试试这个:

a = a.replace(/ [^ ](?= )/g, '');

但这可能会删除你想要的东西