Warning: file_get_contents(/data/phpspider/zhask/data//catemap/1/vue.js/6.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 将自定义时间字符串转换为带符号的分钟_Javascript_Jquery_Regex - Fatal编程技术网

Javascript 将自定义时间字符串转换为带符号的分钟

Javascript 将自定义时间字符串转换为带符号的分钟,javascript,jquery,regex,Javascript,Jquery,Regex,我需要像这样转换字符串 "UTC - 9:30 hours" 到分钟 比如: var date = "UTC - 9 : 10 hours"; date = date.replace("UTC",'').replace("hours",'').replace(/\s+/g, ''); var hours = parseInt( date.split(":")[0] ); var minutes = parseInt ( date.split(":")[1] || 0 ); var sign =

我需要像这样转换字符串

"UTC - 9:30 hours"
到分钟

比如:

var date = "UTC - 9 : 10 hours";
date = date.replace("UTC",'').replace("hours",'').replace(/\s+/g, '');
var hours = parseInt( date.split(":")[0] );
var minutes = parseInt ( date.split(":")[1] || 0 );
var sign = hours / Math.abs(hours);
var totalMinutes = ( hours * 60 ) + ( sign * minutes );

有没有更简单的方法使用任何regexp?只是好奇。

请耐心点……像这样的事情是不是太琐碎了

string input = "UTC - 9:30 hours";
Match m = Regex.Match(input, @"(?<sign>-?)\s?(?<hours>\d+)\s?:\s?(?<minutes>\d+)");
int sign = m.Groups["sign"].Value == "-" ? -1 : 1;
int hours = int.Parse(m.Groups["hours"].Value);
int minutes = int.Parse(m.Groups["minutes"].Value);
int totalMinutes = (hours * 60 + minutes)*sign;
string input=“UTC-9:30小时”;
Match m=Regex.Match(输入,@“(?-)\s”(?\d+)\s:\s”(?\d+);
int sign=m.Groups[“sign”]。Value==“-”-1 : 1;
int-hours=int.Parse(m.Groups[“hours”].Value);
int minutes=int.Parse(m.Groups[“minutes”].Value);
整数总分钟=(小时*60+分钟)*符号;
哦,对不起…你说的是javascript。我贴了一个c代码……那没关系。 无论如何,正则表达式仍然有效

但是要回答你的问题,不,正如你所看到的,这一点都不容易

p、 s:我以不同的方式处理这个标志,只是因为我不理解你的观点,而且有很多
操作符只是为了允许更宽松的模式。

为什么不简单地:

var take     = "UTC - 9:30 hours".split(' ')[2].split(':');
var minutes  = parseFloat(take[0])*60 + parseFloat(take[1]);

alert(minutes); // 570

另外:
var分钟数=数字(取[0])*60+数字(取[1])


@拉明森-嘿,谢谢!我将离开一段时间(我将观看但不发布),我几乎毁了我的生活。(参见我的个人资料描述…)竖起大拇指!顺便说一句,回答得很好Raminson我会继续关注你的进步!为什么,兄弟?毁了?什么意思?是什么让你有这种感觉?你所写的是我的想法和信仰,生活就是战斗,为捍卫和战胜弱点而战斗,正如尼采所说,什么不会摧毁我,什么会让我更强大。@Raminson这是关于家庭的+1尼采:)