Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/javascript/394.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Javascript 从字段中删除GUID(如果存在)_Javascript_Jquery_Regex - Fatal编程技术网

Javascript 从字段中删除GUID(如果存在)

Javascript 从字段中删除GUID(如果存在),javascript,jquery,regex,Javascript,Jquery,Regex,我的客户端Web服务返回一些带有GUID的字段,而有些字段没有。 我想写一个函数,它将检查该字段中是否有GUID,我需要从中去掉该GUID,如果GUID不存在,则按原样返回字段 功能原型:- function stripGuid(field) { //check if field has GUID then strip off, return new strip field //else return field as it is } stripGuid(sampleData); 样本

我的客户端Web服务返回一些带有GUID的字段,而有些字段没有。 我想写一个函数,它将检查该字段中是否有GUID,我需要从中去掉该GUID,如果GUID不存在,则按原样返回字段

功能原型:-

function stripGuid(field)
{
 //check if field has GUID then strip off, return new strip field
 //else return field as it is
 }
stripGuid(sampleData);
样本数据:-

 4922093F-148F-4220-B321-0FBB1843B5DDrec_guid   
 4922093F-148F-4220-B321-0FBB1843B5DDdate_add
 tablenam
 sessguid
如何调用函数:-

function stripGuid(field)
{
 //check if field has GUID then strip off, return new strip field
 //else return field as it is
 }
stripGuid(sampleData);
预期产出:-

 rec_guid
 date_add
 tablenam
 sessguid

与大多数regex一样,答案的复杂性取决于需要涵盖的案例数量,例如:

return field.replace(/[0-9a-fA-F\-]{36}/g, "");
它将涵盖大多数情况,读起来并不可怕,但在一些非常重要的情况下它失败了,所以可能是这样

return field.replace(/[0-9a-fA-F]{8}\-?[0-9a-fA-F]{4}\-?[0-9a-fA-F]{4}\-?[0-9a-fA-F]{4}\-?[0-9a-fA-F]{12}/g, "");
对您来说会更好(因为它确保破折号都在正确的位置,并且破折号的数量正确)。更好的选择取决于您期望输入的标准化程度,以及您的项目在可读性和正确性之间的界限。没有更多的细节,很难说什么对你最好

编辑:Nate Kerkhofs是对的,我在上面的正则表达式中去掉了全局标志,现在已经修复了

return field.replace(/[a-f0-9]{8}-(?:[a-f0-9]{4}-){3}[a-f0-9]{12}/gi, "");

与teryret的解决方案不同,这将删除所有GUI,并且忽略大小写以便于阅读。

您的预期输出是什么?很抱歉,忘记添加预期输出。现在添加到问题中。但第二行在输入中有
date\u add
,在输出中有
date\u guid
,这是我的错误。这只是一个打字错误。现在修复了。但是当我的示例数据有“-”时会发生什么,那么它会工作吗?很抱歉,我对REGX一无所知,这就是我问的原因。如果GUID存在或不存在,我们是否可以在返回的字符串中添加一个标志。第一个正则表达式只有在有破折号时才有效,第二个正则表达式可以有破折号或没有破折号。它们都适用于大写或小写。如果您想用一个标志来代替guid,只需将标志文本放在replace的第二个参数中,而不是空字符串中。否我想要标志和guid,我可以在guid中附加一些内容吗?这是获得带有标志的GUID的正确方法吗?我很困惑,对于问题中的输入,您想要什么输出?