[英]Javascript , how can I run .exe file in Mirth? How can I invoke ActiveXObject in Mirth?
[英]How to run javascript Regular Expression in Mirth
我有以下字符串:
Source: "HKID:A1234567~PKey:00888880~DOC:TKWC033330"
Regex: .*(HKID:.*?)(.+?)((?=~)|\s|\z)
當我在JavaScript正則表達式測試站點上對此進行測試時,我得到了A1234567,所以一切都很好。
我將此表達式放在我的Mirth頻道的javascript轉換器中。 但是我返回的hk_id值為null或空字符串。
我嘗試過的事情:
re.match()
但這給了我錯誤, re.match()
說cannot find function match in object...
/
周圍加上單引號 re.exec('.*')
,但仍然得到空值或null值。 RegExp.$1
,而是嘗試僅返回m,但是沒有任何區別。 我認為這可能歸結為我如何逃避角色,但我找不到有關此的任何Mirth文檔,如果您有任何見解,將不勝感激。
var hk_id = Find_HKID();
var xml_msg =
'<?xml version="1.0" encoding="utf-8" ?> <XML><Barcode="'+hk_id+'" /></XML>';
var sResp = ResponseFactory.getSuccessResponse(xml_msg)
responseMap.put('Response', sResp);
function Find_HKID()
{
var test = 'HKID:A1234567~PKey:00888880~DOC:TKWC033330'
var re = new RegExp(test);
var m = re.exec('.*(HKID:.*?)(.+?)((?=~)|\s|\z)');
return RegExp.$1 + RegExp.$2 + RegExp.$3 + "";
}
您將正則表達式和測試字符串混淆了,它應該是:
function Find_HKID()
{
var test = 'HKID:A1234567~PKey:00888880~DOC:TKWC033330'
var re = new RegExp('.*(HKID:.*?)(.+?)((?=~)|\s|\z)');
var m = re.exec(test);
return RegExp.$1 + RegExp.$2 + RegExp.$3 + "";
}
順便說一句。 您不應該使用new RegExp()
,它速度慢且難看。 直接使用正則表達式:
var re = /.*(HKID:.*?)(.+?)((?=~)|\s|\z)/;
編輯:就像Ωmega提出的一樣,此正則表達式也可能對您有用,並且更精確:
var re = /.*(HKID:.*?)[~\s]/
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.