@lijuhong1981/jstext 1.0.0
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/index.js +15 -0
- package/package.json +21 -0
- package/src/extractBaseUrl.js +12 -0
- package/src/extractFileName.js +17 -0
- package/src/extractNumber.js +16 -0
- package/src/formatAreaString.js +22 -0
- package/src/formatDistanceString.js +15 -0
- package/src/formatVolumeString.js +16 -0
package/index.js
ADDED
|
@@ -0,0 +1,15 @@
|
|
|
1
|
+
import extractBaseUrl from "./src/extractBaseUrl";
|
|
2
|
+
import extractFileName from "./src/extractFileName";
|
|
3
|
+
import extractNumber from "./src/extractNumber";
|
|
4
|
+
import formatAreaString from "./src/formatAreaString";
|
|
5
|
+
import formatDistanceString from "./src/formatDistanceString";
|
|
6
|
+
import formatVolumeString from "./src/formatVolumeString";
|
|
7
|
+
|
|
8
|
+
export {
|
|
9
|
+
extractBaseUrl,
|
|
10
|
+
extractFileName,
|
|
11
|
+
extractNumber,
|
|
12
|
+
formatAreaString,
|
|
13
|
+
formatDistanceString,
|
|
14
|
+
formatVolumeString,
|
|
15
|
+
};
|
package/package.json
ADDED
|
@@ -0,0 +1,21 @@
|
|
|
1
|
+
{
|
|
2
|
+
"name": "@lijuhong1981/jstext",
|
|
3
|
+
"version": "1.0.0",
|
|
4
|
+
"description": "",
|
|
5
|
+
"main": "index.js",
|
|
6
|
+
"module": "index.js",
|
|
7
|
+
"type": "module",
|
|
8
|
+
"scripts": {
|
|
9
|
+
"test": "echo \"Error: no test specified\" && exit 1"
|
|
10
|
+
},
|
|
11
|
+
"repository": {
|
|
12
|
+
"type": "git",
|
|
13
|
+
"url": "git+https://github.com/lijuhong1981/jstext.git"
|
|
14
|
+
},
|
|
15
|
+
"author": "lijuhong1981",
|
|
16
|
+
"license": "ISC",
|
|
17
|
+
"bugs": {
|
|
18
|
+
"url": "https://github.com/lijuhong1981/jstext/issues"
|
|
19
|
+
},
|
|
20
|
+
"homepage": "https://github.com/lijuhong1981/jstext#readme"
|
|
21
|
+
}
|
|
@@ -0,0 +1,12 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* 从url中提取baseUrl
|
|
3
|
+
* @param {String} url 传入的url
|
|
4
|
+
* @returns {String} 提取的baseUrl
|
|
5
|
+
*/
|
|
6
|
+
function extractBaseUrl(url) {
|
|
7
|
+
const index = url.lastIndexOf('/');
|
|
8
|
+
if (index === -1) return './';
|
|
9
|
+
return url.substring(0, index);
|
|
10
|
+
}
|
|
11
|
+
|
|
12
|
+
export default extractBaseUrl;
|
|
@@ -0,0 +1,17 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* 从url中提取文件名
|
|
3
|
+
* @param {String} url 传入的url
|
|
4
|
+
* @returns {String} 提取的文件名
|
|
5
|
+
*/
|
|
6
|
+
function extractFileName(url) {
|
|
7
|
+
let index = url.lastIndexOf('/');
|
|
8
|
+
if (index === -1)
|
|
9
|
+
return url;
|
|
10
|
+
let name = url.substring(index + 1);
|
|
11
|
+
index = name.lastIndexOf('?');
|
|
12
|
+
if (index > 0)
|
|
13
|
+
name = name.substring(0, index - 1);
|
|
14
|
+
return name;
|
|
15
|
+
};
|
|
16
|
+
|
|
17
|
+
export default extractFileName;
|
|
@@ -0,0 +1,16 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* 从字符串中提取数字
|
|
3
|
+
* @param {String} value
|
|
4
|
+
* @returns {String}
|
|
5
|
+
*/
|
|
6
|
+
function extractNumber(value) {
|
|
7
|
+
const arr = value.match(/\d+(.\d+)?/g);
|
|
8
|
+
if (arr) {
|
|
9
|
+
if (arr.length === 1)
|
|
10
|
+
return arr[0];
|
|
11
|
+
else
|
|
12
|
+
return arr;
|
|
13
|
+
};
|
|
14
|
+
};
|
|
15
|
+
|
|
16
|
+
export default extractNumber;
|
|
@@ -0,0 +1,22 @@
|
|
|
1
|
+
const ARE = 100 * 100;
|
|
2
|
+
const SQUARE_KILOMETER = 1000 * 1000;
|
|
3
|
+
const HECTARE = 10000 * 10000;
|
|
4
|
+
|
|
5
|
+
/**
|
|
6
|
+
* 格式化平方米面积为带单位的文本
|
|
7
|
+
* @param {Number} area 面积数值,单位平方米
|
|
8
|
+
* @param {Number} fractionDigits 保留的小数位数,默认值2
|
|
9
|
+
* @returns {String} 格式化后的文本
|
|
10
|
+
*/
|
|
11
|
+
function formatAreaString(area, fractionDigits = 2) {
|
|
12
|
+
if (area < ARE)
|
|
13
|
+
return area.toFixed(fractionDigits) + '平方米';
|
|
14
|
+
else if (area < SQUARE_KILOMETER)
|
|
15
|
+
return (area / ARE).toFixed(fractionDigits) + '公亩';
|
|
16
|
+
else if (area < HECTARE)
|
|
17
|
+
return (area / SUQARE_KILOMETER).toFixed(fractionDigits) + '平方公里';
|
|
18
|
+
else
|
|
19
|
+
return (area / HECTARE).toFixed(fractionDigits) + '公顷';
|
|
20
|
+
};
|
|
21
|
+
|
|
22
|
+
export default formatAreaString;
|
|
@@ -0,0 +1,15 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* 格式化米距离为带单位的文本
|
|
3
|
+
* @param {Number} distance 距离数值,单位米
|
|
4
|
+
* @param {Number} fractionDigits 保留的小数位数,默认值2
|
|
5
|
+
* @returns {String} 格式化后的文本
|
|
6
|
+
*/
|
|
7
|
+
function formatDistanceString(distance, fractionDigits = 2) {
|
|
8
|
+
if (distance < 1000) {
|
|
9
|
+
return distance.toFixed(fractionDigits) + '米';
|
|
10
|
+
} else {
|
|
11
|
+
return (distance / 1000).toFixed(fractionDigits) + '公里';
|
|
12
|
+
}
|
|
13
|
+
};
|
|
14
|
+
|
|
15
|
+
export default formatDistanceString;
|
|
@@ -0,0 +1,16 @@
|
|
|
1
|
+
const CUBE_KILOMETER = 1000 * 1000 * 1000;
|
|
2
|
+
|
|
3
|
+
/**
|
|
4
|
+
* 格式化立方米体积为带单位的文本
|
|
5
|
+
* @param {Number} volume 体积数值,单位立方米
|
|
6
|
+
* @param {Number} fractionDigits 保留的小数位数,默认值2
|
|
7
|
+
* @returns {Number} 格式化后的文本
|
|
8
|
+
*/
|
|
9
|
+
function formatVolumeString(volume, fractionDigits = 2) {
|
|
10
|
+
if (volume < CUBE_KILOMETER)
|
|
11
|
+
return volume.toFixed(fractionDigits) + '立方米';
|
|
12
|
+
else
|
|
13
|
+
return (volume / CUBE_KILOMETER).toFixed(fractionDigits) + '立方千米';
|
|
14
|
+
};
|
|
15
|
+
|
|
16
|
+
export default formatVolumeString;
|