JS字符串替换为正则表达式

时间:2014-05-15 00:59:03

标签: javascript regex

使用以下内容替换字符串有点困难。

我想替换 - with - 但遇到时 - 环绕数字(左或右),只需删除空格。只是想知道它是否可能?

原始--------------------------

如今,家庭联系并不像听起来那么简单。我们都过着忙碌的生活,所有家庭成员 - 甚至孩子 - 都可以忙碌的日程安排。此外,电视和社交媒体的不断分散会妨碍父母和孩子之间以及兄弟姐妹之间的有意义的互动。 为了庆祝全国家庭周( 15th-21st 5月),我们将这十个步骤放在一起,以便更好地融合家庭。

过滤后--------------------------

如今,家庭联系并不像听起来那么简单。我们都过着忙碌的生活,所有家庭成员 - 甚至孩子 - 都可以忙碌的日程安排。此外,电视和社交媒体的不断分散会妨碍父母和孩子之间以及兄弟姐妹之间的有意义的互动。 为了庆祝全国家庭周( 15th-21st 5月),我们将这十个步骤放在一起,以便更好地融合家庭。

到目前为止我得到了什么.--------------------------

var data = document.getElementById('textarea').value;

var re = /\s-\s/gi;
var newstr = data.replace(re, " – ");

document.getElementById('textareaFilter').value = newstr;

1 个答案:

答案 0 :(得分:2)

您可以使用replace()方法的变体执行此操作accepts a function来处理匹配的字符串以及额外的步骤。

这是jsFiddle example和最相关的代码:

var text = 'These days, family bonding isn’t as simple as it sounds. We all lead hectic lives, and all family members - even small kids - can have busy schedules. Plus, constant distractions from TV and social media can get in the way of meaningful interactions between parents and kids, as well as between siblings. To celebrate National Families Week (15th - 21st May), we’ve put together these ten steps for better family bonding.';
var re1 = /(\d\s-\s|\s-\s\d|\d\s-\s\d)/gi
var re2 = /\s-\s/gi;
var newstr = text.replace(re1, function(match) { 
    return match.replace(/\s/gi, '');
});
newstr = newstr.replace(re2, " – ");
document.getElementById('textareaFilter').value = newstr;
相关问题