Javascript Java脚本:如何根据条件替换多个字符串
以下字符串的格式为名称和值('name'-'value';)。 如何删除值Javascript Java脚本:如何根据条件替换多个字符串,javascript,string,Javascript,String,以下字符串的格式为名称和值('name'-'value';)。 如何删除值'0 bytes'及其名称和 删除名称'/platform/sun4v/lib/sparcv9/libc_psr.so.1'及其值 /设备-0字节/系统/对象-0字节/etc/dfs/sharetab-0 字节/dev/fd-0字节/风险值/运行-13.77吉布; /平台/sun4v/lib/sparcv9/libc_psr.so.1-27.24 GiB;/-27.24吉布; /var-26.84吉布/proc-0字节/系
'0 bytes'
及其名称和
删除名称'/platform/sun4v/lib/sparcv9/libc_psr.so.1'
及其值
/设备-0字节/系统/对象-0字节/etc/dfs/sharetab-0
字节/dev/fd-0字节/风险值/运行-13.77吉布;
/平台/sun4v/lib/sparcv9/libc_psr.so.1-27.24 GiB;/-27.24吉布;
/var-26.84吉布/proc-0字节/系统/合同-0字节/rpool
-18.04吉布/mnt-157.67 TiB/vol-0字节/为8-48.26吉布/平台/sun4v/lib/libc_psr.so.1-27.24gib/etc/svc/volatile-
13.77吉布/etc/mnttab-0字节/tmp-13.82吉布
拆分selicolon上的字符串并根据条件筛选数组,然后加入数组以添加分号并转换回一个字符串:
var str = '/devices - 0 bytes; /system/object - 0 bytes; /etc/dfs/sharetab - 0 bytes; /dev/fd - 0 bytes; /var/run - 13.77 GiB; /platform/sun4v/lib/sparcv9/libc_psr.so.1 - 27.24 GiB; / - 27.24 GiB; /var - 26.84 GiB; /proc - 0 bytes; /system/contract - 0 bytes; /rpool - 18.04 GiB; /mnt - 157.67 TiB; /vol - 0 bytes; /was8 - 48.26 GiB; /platform/sun4v/lib/libc_psr.so.1 - 27.24 GiB; /etc/svc/volatile - 13.77 GiB; /etc/mnttab - 0 bytes; /tmp - 13.82 GiB;'
var splitStr = str.split(';');
var newStr = splitStr.filter(function(item){
var itemSplit = item.split('-');
return !(itemSplit != '' && (itemSplit[0].trim() === '/platform/sun4v/lib/sparcv9/libc_psr.so.1' || itemSplit[1].trim() ==='0 bytes'));
}).join(';');
//newStr is will contain the filtered string
console.log(newStr);
您可以在这里使用正则表达式来转换字符串 请参见:
/\/platform\/sun4v\/lib\/sparcv9\/libc\u psr\.so\.1[^\]+\\s/
)选择长且唯一的子字符串李>
/\/[^\-]+-0字节\;\s/g
)选择-0字节的所有实例(以及每个实例前面的标签)
var paragraphAfter=document.getElementsByClassName('after')[0];
var textBefore=document.getElementsByClassName('before')[0]。textContent;
var textAfter=textBefore.replace(/\/platform\/sun4v\/lib\/sparcv9\/libc\u psr\.so\.1[^\]+\\s/,'');
var textfeater=textfeater.replace(/\/[^\-]+-0字节\;\s/g',);
paragraphAfter.textContent=textAfter代码>
之前:
/devices-0字节/系统/对象-0字节/etc/dfs/sharetab-0字节/dev/fd-0字节/风险值/运行-13.77吉布/平台/sun4v/lib/sparcv9/libc_psr.so.1-27.24 GiB/var-26.84吉布/proc-0字节/系统/合同-0字节/rpool-18.04吉布/mnt-157.67 TiB/vol-0字节/为8-48.26吉布/平台/sun4v/lib/libc_psr.so.1-27.24gib/etc/svc/volatile-13.77吉布/etc/mnttab-0字节/tmp-13.82吉布
之后:
试试这个
str.split(';').filter(item => !item.includes('0 bytes') && !item.includes('/platform/sun4v/lib/sparcv9/libc_psr.so.1')).join(';')
我相信您仍然希望输出的格式相同。这应该适合您:
function formatInfo(data) {
return data.split(";").filter(function(item,i) {
if( item.indexOf('0 bytes') >= 0 || item.indexOf('/platform/sun4v/lib/sparcv9/libc_psr.so.1') >= 0 ) {
return null;
}
return item.trim();
}).join(";").trim();
}
//用法:
formatInfo('/devices - 0 bytes; /system/object - 0 bytes; /etc/dfs/sharetab - 0 bytes; /dev/fd - 0 bytes; /var/run - 13.77 GiB; /platform/sun4v/lib/sparcv9/libc_psr.so.1 - 27.24 GiB; / - 27.24 GiB; /var - 26.84 GiB; /proc - 0 bytes; /system/contract - 0 bytes; /rpool - 18.04 GiB; /mnt - 157.67 TiB; /vol - 0 bytes; /was8 - 48.26 GiB; /platform/sun4v/lib/libc_psr.so.1 - 27.24 GiB; /etc/svc/volatile - 13.77 GiB; /etc/mnttab - 0 bytes; /tmp - 13.82 GiB;');
//应返回:
"/var/run - 13.77 GiB; / - 27.24 GiB; /var - 26.84 GiB; /rpool - 18.04 GiB; /mnt - 157.67 TiB; /was8 - 48.26 GiB; /platform/sun4v/lib/libc_psr.so.1 - 27.24 GiB; /etc/svc/volatile - 13.77 GiB; /tmp - 13.82 GiB"
干杯