gpt4 book ai didi

JavaScript:根据字符串猜测数据类型

转载 作者:塔克拉玛干 更新时间:2023-11-02 21:34:39 24 4
gpt4 key购买 nike

我正在寻找一个函数,它可以告诉我可以将字符串转换为哪种数据类型。示例:

“28.98”结果为 float (. 作为分隔符)

“44.332,95”结果为 float (,作为分隔符)

“29/04/14”导致日期(应该适用于国际 -> 不同的日期格式)

“34.524”结果为 int(. 作为分隔符)

“所有其余”结果为字符串

理想情况下(这些是字符串的子类):

“something@example.com”导调用子邮件

电话中的“+49/2234/234567”结果

是否有(开源)库可以做这样的事情?

谢谢!

最佳答案

给你。不是图书馆,大量的正则表达式,但它适用于您的示例。如果需要匹配其他东西,请添加更多示例。在评论中接受批评或要求。

function getType(str){
if (typeof str !== 'string') str = str.toString();
var nan = isNaN(Number(str));
var isfloat = /^\d*(\.|,)\d*$/;
var commaFloat = /^(\d{0,3}(,)?)+\.\d*$/;
var dotFloat = /^(\d{0,3}(\.)?)+,\d*$/;
var date = /^\d{0,4}(\.|\/)\d{0,4}(\.|\/)\d{0,4}$/;
var email = /^[A-za-z0-9._-]*@[A-za-z0-9_-]*\.[A-Za-z0-9.]*$/;
var phone = /^\+\d{2}\/\d{4}\/\d{6}$/g;
if (!nan){
if (parseFloat(str) === parseInt(str)) return "integer";
else return "float";
}
else if (isfloat.test(str) || commaFloat.test(str) || dotFloat.test(str)) return "float";
else if (date.test(str)) return "date";
else {
if (email.test(str)) return "e-mail";
else if (phone.test(str)) return "phone";
else return "string";
}
}

关于JavaScript:根据字符串猜测数据类型,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/16775547/

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com