剑指Offer——表示数值的字符串(JS实现)
原创
©著作权归作者所有:来自51CTO博客作者wb59770b05237ae的原创作品,请联系作者获取转载授权,否则将追究法律责任
题目描述


解题思路
- 本题采用正则表达式的解法,就当作练习自己的正则表达式了
- 使用trim去除字符串两侧的空格。
- 小数的情况。
- 整数的情况。
- 为e或E的情况,然后后面跟着一个整数的情况
综合上面四种情况,来综合判断是否符合表示数值的字符串。这道题题干真的很清晰。
解题代码
var isNumber = function(s) {
// 去除字符串两侧的空格
s = s.trim();
// 判断是否有 + - 号,有则继续判断
const num = s.match(/^[+-]?\d{1,}\.([eE][+-]?\d+)?$/);
const num2 = s.match(/^[+-]?\d{1,}\.\d{1,}([eE][+-]?\d+)?$/);
const num3 = s.match(/^[+-]?\.\d{1,}([eE][+-]?\d+)?$/);
const num4 = s.match(/^[+-]?\d+([eE][+-]?\d+)?$/)
if (!num && !num2 && !num3 && !num4) {
return false;
} else {
return true
}
};
总结(本题给我们的启示思路)