我想这个问题对于专家来说非常简单,但我无法想出这个问题(甚至没有通过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
编辑:根据评论感谢@ stanislav-Šolc
更新了我的尝试答案 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, '');
但这可能会删除你想要的东西