[英]How to clean string from word characters, Javascript
我正在尝试清理已从单词文本转换而来的字符串,但我一直坚持删除特殊字符“…”
通过单击“清理”按钮,脚本将删除所有圆点和仅一个特殊字符,但是我需要删除所有圆点
我的错误在哪里?
这里是我的代码和plunker与斗争
$scope.string = "My transformed string ………….........…...."
$scope.removeDots = function () {
var em = document.getElementsByTagName('em');
var reg = /\./g;
var hellip = /…/g
angular.forEach(em, function (item) {
if(item.innerText.match(reg)){
item.innerText = process(item.innerText)
}
if (item.innerText.match(hellip)){
item.innerText = item.innerText.replace("…", "")
}
});
};
function process( str ) {
return str.replace( /^([^.]*\.)(.*)$/, function ( a, b, c ) {
return b + c.replace( /\./g, '' );
});
}
这里有一些问题,但是只要在处理期间和…
process
中将代码简化为单个正则表达式替换,就可以解决所有问题…
实体:
$scope.removeDots = function () {
var em = document.getElementsByTagName('em');
angular.forEach(em, function (item) {
item.innerText = process(item.innerText)
});
};
function process( str ) {
return str.replace( /\.|…/g, '');
}
});
您替换每次出现的.
进行process
,但只能替换…
一旦。
我不明白你为什么不做.replace(/(\\.|…)/g, '')
; g
修饰符可确保替换所有匹配项。
您可以通过先替换出现的…
来进行这两种替换…
用一个点(因为这可能是您找到的唯一东西),然后将任何点序列替换为一个:
function process( str ) { return str.replace(/…/g, '.').replace(/\\.\\.+/g, '.'); } var test="My transformed string ………….........…...."; console.log(process(test));
您的代码未替换所有内容的原因之一是,您使用字符串作为find参数,这只会导致一次替换。 通过使用正则表达式作为find参数,可以获得g
修饰符的效果。
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.