我有一个来自数据库的长字符串,我必须将其拆分,并能够将其转换为json格式。这部分我知道我不会有问题,但我正在努力解决如何打破它。
LAST ADMISSION DATE,LAST ASSESSMENT DATE,LAST DISCHARGE DATE,LAST MH
SAFETY PLAN,NEXT MH APPT DATE,ON TRACK,PATIENT NAME,PATIENT PRF,PRF
REVIEW,^widgetcolumns\nHIGH RISK^widget,17|MENTAL HEALTH
CENTER,^widgetloc,42^instrID,PHQ9^instrName,S^instrScore|\nSUD^widget
inactive,3180601\nTRIAGE^widgetTRIAGE
WIDGET^widgettitle5^widgettype\nTRIAGE^widget,LAST APPOINTMENT,PATIENT
NAME,^widgetcolumns\nTRIAGE^widget,17|MENTAL HEALTH CENTER,26|MENTAL
HYGIENE-OPC,^widgetloc,\nHIGH RISK^widget,APPOINTMENT DATE,LAST
ASSESSMENT DATE,MH LAST APPT
DATE,^criteriafields,RG,GE,GE,^criteriaexp,01/01/2016-
12/31/2018,01/01/2016,01/01/2010,^criteriaval\nTRIAGE^widget,APPOINTMENT
DATE,^criteriafields,GE,^criteriaexp,01/01/2015,^criteriaval\nERROR:
TRIAGE^wdgt,,^BAD APPT DATES\nHIGH
RISK^widget,1^count,3^dfn,EIGHT,PATIENT^patname,
09/04/2018^reviewdate,ACTIVE^status,HIGH RISK FOR SUICIDE^flag\nHIGH
RISK^widget,2^count,379^dfn,SEVENTYNINE,PATIENT^patname,
07/01/2018^reviewdate,ACTIVE^status,HIGH RISK FOR SUICIDE^flag\nHIGH
RISK^widget,3^count,766^dfn,SEVENTYONE,PATIENT^patname,
06/12/2018^reviewdate,ACTIVE^status,HIGH RISK FOR SUICIDE^flag\nHIGH
RISK^widget,4^count,100848^dfn,AVIVAPATIENT,EIGHT^patname,
01/24/2018^reviewdate,ACTIVE^status,HIGH RISK FOR SUICIDE^flag\n
我为这条超长的线提前道歉,但我需要
"HIGH RISK^widget,1^count,3^dfn,EIGHT,PATIENT^patname,"
从那个字符串到底部。所以除了引号之外的所有东西都被丢弃了。
有没有办法不把我的头撞到墙上?问题是没有什么是硬编码的,因为所有的数据都是根据登录的人而不同的。
更新:适用于那些询问所需输出的人。我想把它作为一个大字符串,而不是其他任何东西。
"HIGH RISK^widget,1^count,3^dfn,EIGHT,PATIENT^patname,
09/04/2018^reviewdate,ACTIVE^status,HIGH RISK FOR SUICIDE^flag\n
HIGH RISK^widget,2^count,379^dfn,SEVENTYNINE,PATIENT^patname,
07/01/2018^reviewdate,ACTIVE^status,HIGH RISK FOR SUICIDE^flag\n
HIGH RISK^widget,3^count,766^dfn,SEVENTYONE,PATIENT^patname,
06/12/2018^reviewdate,ACTIVE^status,HIGH RISK FOR SUICIDE^flag\n
HIGH RISK^widget,4^count,100848^dfn,AVIVAPATIENT,EIGHT^patname,
01/24/2018^reviewdate,ACTIVE^status,HIGH RISK FOR SUICIDE^flag\n"
提前感谢您的帮助!
发布于 2018-07-25 07:57:18
您可以使用这个正则表达式:
[\s\S]*?(?=HIGH\s*?RISK\^widget,1\^)
示例:https://regex101.com/r/HNvvpc/1/
完整的JS:
var String = "LAST ADMISSION DATE,LAST ASSESSMENT DATE,LAST DISCHARGE DATE,LAST MH SAFETY PLAN,NEXT MH APPT DATE,ON TRACK,PATIENT NAME,PATIENT PRF,PRF REVIEW,^widgetcolumns\nHIGH RISK^widget,17|MENTAL HEALTH CENTER,^widgetloc,42^instrID,PHQ9^instrName,S^instrScore|\nSUD^widget inactive,3180601\nTRIAGE^widgetTRIAGE WIDGET^widgettitle5^widgettype\nTRIAGE^widget,LAST APPOINTMENT,PATIENT NAME,^widgetcolumns\nTRIAGE^widget,17|MENTAL HEALTH CENTER,26|MENTAL HYGIENE-OPC,^widgetloc,\nHIGH RISK^widget,APPOINTMENT DATE,LAST ASSESSMENT DATE,MH LAST APPT DATE,^criteriafields,RG,GE,GE,^criteriaexp,01/01/2016- 12/31/2018,01/01/2016,01/01/2010,^criteriaval\nTRIAGE^widget,APPOINTMENT DATE,^criteriafields,GE,^criteriaexp,01/01/2015,^criteriaval\nERROR: TRIAGE^wdgt,,^BAD APPT DATES\nHIGH RISK^widget,1^count,3^dfn,EIGHT,PATIENT^patname,09/04/2018^reviewdate,ACTIVE^status,HIGH RISK FOR SUICIDE^flag\nHIGH RISK^widget,2^count,379^dfn,SEVENTYNINE,PATIENT^patname,07/01/2018^reviewdate,ACTIVE^status,HIGH RISK FOR SUICIDE^flag\nHIGH RISK^widget,3^count,766^dfn,SEVENTYONE,PATIENT^patname,06/12/2018^reviewdate,ACTIVE^status,HIGH RISK FOR SUICIDE^flag\nHIGH RISK^widget,4^count,100848^dfn,AVIVAPATIENT,EIGHT^patname,01/24/2018^reviewdate,ACTIVE^status,HIGH RISK FOR SUICIDE^flag\n"
console.log(String.replace(/[\s\S]*?(?=HIGH\s*?RISK\^widget,1\^)/, ''));
要删除^
和数组中的所有内容,可以使用这个简单的带循环的正则表达式\^.*
。示例:
var Arr = ["HIGH RISK^widget", "1^count", "3^dfn", "EIGHT", "PATIENT^patname", "09/04/2018^reviewdate", "ACTIVE^status", "HIGH RISK FOR SUICIDE^flag"];
for (i = 0; i < Arr.length; i++) {
console.log(Arr[i].replace(/\^.*/, ''));
}
发布于 2018-07-25 02:31:06
您可以先去掉所有换行符和换行符,然后将从字符串开头到第一个高实例的所有内容都替换为“高”。
var str = `LAST ADMISSION DATE,LAST ASSESSMENT DATE,LAST DISCHARGE DATE,LAST MH
SAFETY PLAN,NEXT MH APPT DATE,ON TRACK,PATIENT NAME,PATIENT PRF,PRF
REVIEW,^widgetcolumns\nHIGH RISK^widget,17|MENTAL HEALTH
CENTER,^widgetloc,42^instrID,PHQ9^instrName,S^instrScore|\nSUD^widget
inactive,3180601\nTRIAGE^widgetTRIAGE
WIDGET^widgettitle5^widgettype\nTRIAGE^widget,LAST APPOINTMENT,PATIENT
NAME,^widgetcolumns\nTRIAGE^widget,17|MENTAL HEALTH CENTER,26|MENTAL
HYGIENE-OPC,^widgetloc,\nHIGH RISK^widget,APPOINTMENT DATE,LAST
ASSESSMENT DATE,MH LAST APPT
DATE,^criteriafields,RG,GE,GE,^criteriaexp,01/01/2016-
12/31/2018,01/01/2016,01/01/2010,^criteriaval\nTRIAGE^widget,APPOINTMENT
DATE,^criteriafields,GE,^criteriaexp,01/01/2015,^criteriaval\nERROR:
TRIAGE^wdgt,,^BAD APPT DATES\nHIGH
RISK^widget,1^count,3^dfn,EIGHT,PATIENT^patname,
09/04/2018^reviewdate,ACTIVE^status,HIGH RISK FOR SUICIDE^flag\nHIGH
RISK^widget,2^count,379^dfn,SEVENTYNINE,PATIENT^patname,
07/01/2018^reviewdate,ACTIVE^status,HIGH RISK FOR SUICIDE^flag\nHIGH
RISK^widget,3^count,766^dfn,SEVENTYONE,PATIENT^patname,
06/12/2018^reviewdate,ACTIVE^status,HIGH RISK FOR SUICIDE^flag\nHIGH
RISK^widget,4^count,100848^dfn,AVIVAPATIENT,EIGHT^patname,
01/24/2018^reviewdate,ACTIVE^status,HIGH RISK FOR SUICIDE^flag\n`
function output(){
str = str.replace(/\n|\\n/g, ' ')
.replace(/^.+?high/i, 'HIGH')
return str
}
document.getElementById('output').textContent = output()
<div id="output"></div>
发布于 2018-07-25 06:36:46
您可以使用split
、slice
和join
var str = "LAST ADMISSION DATE,LAST ASSESSMENT DATE,LAST DISCHARGE DATE,LAST MH SAFETY PLAN,NEXT MH APPT DATE,ON TRACK,PATIENT NAME,PATIENT PRF,PRF REVIEW,^widgetcolumns\nHIGH RISK^widget,17|MENTAL HEALTH CENTER,^widgetloc,42^instrID,PHQ9^instrName,S^instrScore|\nSUD^widget inactive,3180601\nTRIAGE^widgetTRIAGE WIDGET^widgettitle5^widgettype\nTRIAGE^widget,LAST APPOINTMENT,PATIENT NAME,^widgetcolumns\nTRIAGE^widget,17|MENTAL HEALTH CENTER,26|MENTAL HYGIENE-OPC,^widgetloc,\nHIGH RISK^widget,APPOINTMENT DATE,LAST ASSESSMENT DATE,MH LAST APPT DATE,^criteriafields,RG,GE,GE,^criteriaexp,01/01/2016- 12/31/2018,01/01/2016,01/01/2010,^criteriaval\nTRIAGE^widget,APPOINTMENT DATE,^criteriafields,GE,^criteriaexp,01/01/2015,^criteriaval\nERROR: TRIAGE^wdgt,,^BAD APPT DATES\nHIGH RISK^widget,1^count,3^dfn,EIGHT,PATIENT^patname,09/04/2018^reviewdate,ACTIVE^status,HIGH RISK FOR SUICIDE^flag\nHIGH RISK^widget,2^count,379^dfn,SEVENTYNINE,PATIENT^patname,07/01/2018^reviewdate,ACTIVE^status,HIGH RISK FOR SUICIDE^flag\nHIGH RISK^widget,3^count,766^dfn,SEVENTYONE,PATIENT^patname,06/12/2018^reviewdate,ACTIVE^status,HIGH RISK FOR SUICIDE^flag\nHIGH RISK^widget,4^count,100848^dfn,AVIVAPATIENT,EIGHT^patname,01/24/2018^reviewdate,ACTIVE^status,HIGH RISK FOR SUICIDE^flag\n"
console.log(str.split('\n').slice(1).join('\\n'))
如果你需要用换行符连接你的srting,使用.join('\n')
。
https://stackoverflow.com/questions/51505040
复制相似问题