繁体   English   中英

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

[英]JS string replace with regular expression

我很难用以下内容替换字符串。

我想用-代替-但遇到-用数字环绕(左或右),只需删除空白。 只想知道是否可能?

原版的 - - - - - - - - - - - - -

如今,家庭联系并不像听起来那样简单。 我们所有人都过着忙碌的生活,所有家庭成员-甚至是 小孩-都有繁忙的日程。 此外,电视和社交媒体的不断干扰会阻碍父母与孩子之间以及兄弟姐妹之间进行有意义的互动。 为了庆祝全国家庭周(5月15日至21日),我们将这十个步骤放在一起,以建立更好的家庭联系。

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

如今,家庭联系并不像听起来那样简单。 我们所有人都过着忙碌的生活,所有家庭成员-甚至是 小孩-都有繁忙的日程。 此外,电视和社交媒体的不断干扰会阻碍父母与孩子之间以及兄弟姐妹之间进行有意义的互动。 为了庆祝全国家庭周(5月15日至21日),我们将这十个步骤放在一起,以建立更好的家庭联系。

我到目前为止所得到的.--------------------------

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

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

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

您可以使用replace()方法的一种变体来做到这一点,该方法接受一个函数来处理匹配的字符串,并需要执行额外的步骤。

这是一个jsFiddle示例和最相关的代码:

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;

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM