字符串增加版本比较的原型方法
parent
e5097d0b7b
commit
0ebe311615
|
@ -31,7 +31,12 @@
|
||||||
│ ├── .xss() // 字符串安全转义
|
│ ├── .xss() // 字符串安全转义
|
||||||
│ ├── .escape() // js特殊字符的转义
|
│ ├── .escape() // js特殊字符的转义
|
||||||
│ ├── .at(index) // 读取指定位置的字符, 负值则从后往前读
|
│ ├── .at(index) // 读取指定位置的字符, 负值则从后往前读
|
||||||
│ └── .toJson() // 将url参数转为对象
|
│ ├── .toJson() // 将url参数转为对象
|
||||||
|
│ ├── .lt(version) // 判断是否小于目标版本号
|
||||||
|
│ ├── .lte(version) // 判断是否小于或等于目标版本号
|
||||||
|
│ ├── .gt(version) // 判断是否大于目标版本号
|
||||||
|
│ ├── .gte(version) // 判断是否大于或等于目标版本号
|
||||||
|
│ └── .eq(version) // 判断是否等于目标版本号, 1.0和1.0.0这里会返回true, 而用 == 或 ===, 无法得到正确的结果
|
||||||
│
|
│
|
||||||
├── Number
|
├── Number
|
||||||
│ ├── .parse(str) // 将安全范围内的数字字符串转为数字类型
|
│ ├── .parse(str) // 将安全范围内的数字字符串转为数字类型
|
||||||
|
|
|
@ -3,10 +3,38 @@
|
||||||
* @date 2020/09/16 12:09:15
|
* @date 2020/09/16 12:09:15
|
||||||
*/
|
*/
|
||||||
|
|
||||||
|
// 版本号比较, 返回 -1, 0, 1
|
||||||
|
function compare(v1, v2) {
|
||||||
|
v1 += ''
|
||||||
|
v2 += ''
|
||||||
|
|
||||||
|
if (v1 === v2) {
|
||||||
|
return 0
|
||||||
|
} else {
|
||||||
|
v1 = v1.split('.')
|
||||||
|
v2 = v2.split('.')
|
||||||
|
|
||||||
|
let max = Math.max(v1.length, v2.length)
|
||||||
|
|
||||||
|
for (let i = 0; i < max; i++) {
|
||||||
|
let _1 = +v1[i] || 0,
|
||||||
|
_2 = +v2[i] || 0
|
||||||
|
|
||||||
|
if (_1 > _2) {
|
||||||
|
return 1
|
||||||
|
} else if (_1 < _2) {
|
||||||
|
return -1
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
return 0
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
//类似于Array 的splice方法
|
//类似于Array 的splice方法
|
||||||
if (!String.prototype.splice) {
|
if (!String.prototype.splice) {
|
||||||
Object.defineProperty(String.prototype, 'splice', {
|
Object.defineProperty(String.prototype, 'splice', {
|
||||||
value: function(start, len, fill) {
|
value: function (start, len, fill) {
|
||||||
let length = this.length
|
let length = this.length
|
||||||
let argLen = arguments.length
|
let argLen = arguments.length
|
||||||
|
|
||||||
|
@ -42,7 +70,7 @@ if (!String.prototype.splice) {
|
||||||
//同php的htmlspecialchars函数
|
//同php的htmlspecialchars函数
|
||||||
if (!String.prototype.htmlspecialchars) {
|
if (!String.prototype.htmlspecialchars) {
|
||||||
Object.defineProperty(String.prototype, 'htmlspecialchars', {
|
Object.defineProperty(String.prototype, 'htmlspecialchars', {
|
||||||
value: function(sign) {
|
value: function (sign) {
|
||||||
let str = this.replace(/&(?!\w+;)/g, '&')
|
let str = this.replace(/&(?!\w+;)/g, '&')
|
||||||
.replace(/</g, '<')
|
.replace(/</g, '<')
|
||||||
.replace(/>/g, '>')
|
.replace(/>/g, '>')
|
||||||
|
@ -61,7 +89,7 @@ if (!String.prototype.htmlspecialchars) {
|
||||||
//htmlspecialchars的还原
|
//htmlspecialchars的还原
|
||||||
if (!String.prototype.tohtml) {
|
if (!String.prototype.tohtml) {
|
||||||
Object.defineProperty(String.prototype, 'tohtml', {
|
Object.defineProperty(String.prototype, 'tohtml', {
|
||||||
value: function() {
|
value: function () {
|
||||||
return this.replace(/</gi, '<')
|
return this.replace(/</gi, '<')
|
||||||
.replace(/>/gi, '>')
|
.replace(/>/gi, '>')
|
||||||
.replace(/"/gi, '"')
|
.replace(/"/gi, '"')
|
||||||
|
@ -74,7 +102,7 @@ if (!String.prototype.tohtml) {
|
||||||
//简单的过滤xss
|
//简单的过滤xss
|
||||||
if (!String.prototype.xss) {
|
if (!String.prototype.xss) {
|
||||||
Object.defineProperty(String.prototype, 'xss', {
|
Object.defineProperty(String.prototype, 'xss', {
|
||||||
value: function() {
|
value: function () {
|
||||||
let str = this.htmlspecialchars('ENT_QUOTES')
|
let str = this.htmlspecialchars('ENT_QUOTES')
|
||||||
str = str
|
str = str
|
||||||
.replace(
|
.replace(
|
||||||
|
@ -90,7 +118,7 @@ if (!String.prototype.xss) {
|
||||||
// js特殊字符的转义
|
// js特殊字符的转义
|
||||||
if (!String.prototype.escape) {
|
if (!String.prototype.escape) {
|
||||||
Object.defineProperty(String.prototype, 'escape', {
|
Object.defineProperty(String.prototype, 'escape', {
|
||||||
value: function() {
|
value: function () {
|
||||||
return this.replace(/('|"|&|\\|\}|\{|\(|\)|;|=|\,|&)/g, '\\$1')
|
return this.replace(/('|"|&|\\|\}|\{|\(|\)|;|=|\,|&)/g, '\\$1')
|
||||||
}
|
}
|
||||||
})
|
})
|
||||||
|
@ -98,7 +126,7 @@ if (!String.prototype.escape) {
|
||||||
|
|
||||||
if (!String.prototype.at) {
|
if (!String.prototype.at) {
|
||||||
Object.defineProperty(String.prototype, 'at', {
|
Object.defineProperty(String.prototype, 'at', {
|
||||||
value: function(num) {
|
value: function (num) {
|
||||||
var n = +num
|
var n = +num
|
||||||
if (n < 0) {
|
if (n < 0) {
|
||||||
n += this.length
|
n += this.length
|
||||||
|
@ -115,7 +143,7 @@ if (!String.prototype.at) {
|
||||||
*/
|
*/
|
||||||
if (!String.prototype.toJson) {
|
if (!String.prototype.toJson) {
|
||||||
Object.defineProperty(String.prototype, 'toJson', {
|
Object.defineProperty(String.prototype, 'toJson', {
|
||||||
value: function() {
|
value: function () {
|
||||||
var str = this.replace(/^\?/, '')
|
var str = this.replace(/^\?/, '')
|
||||||
var params = decodeURIComponent(str)
|
var params = decodeURIComponent(str)
|
||||||
.split('&')
|
.split('&')
|
||||||
|
@ -129,3 +157,36 @@ if (!String.prototype.toJson) {
|
||||||
}
|
}
|
||||||
})
|
})
|
||||||
}
|
}
|
||||||
|
|
||||||
|
// 用于版本号的比较
|
||||||
|
if (!String.prototype.lt) {
|
||||||
|
Object.defineProperty(String.prototype, 'lt', {
|
||||||
|
value: function (v) {
|
||||||
|
return compare(this, v) === -1
|
||||||
|
}
|
||||||
|
})
|
||||||
|
|
||||||
|
Object.defineProperty(String.prototype, 'lte', {
|
||||||
|
value: function (v) {
|
||||||
|
return compare(this, v) < 1
|
||||||
|
}
|
||||||
|
})
|
||||||
|
|
||||||
|
Object.defineProperty(String.prototype, 'gt', {
|
||||||
|
value: function (v) {
|
||||||
|
return compare(this, v) === 1
|
||||||
|
}
|
||||||
|
})
|
||||||
|
|
||||||
|
Object.defineProperty(String.prototype, 'gte', {
|
||||||
|
value: function (v) {
|
||||||
|
return compare(this, v) > -1
|
||||||
|
}
|
||||||
|
})
|
||||||
|
|
||||||
|
Object.defineProperty(String.prototype, 'eq', {
|
||||||
|
value: function (v) {
|
||||||
|
return compare(this, v) === 0
|
||||||
|
}
|
||||||
|
})
|
||||||
|
}
|
||||||
|
|
Loading…
Reference in New Issue