Skip to content
TOC

输入处理

OhMyMN 中有大量的输入框,需要进行字符串处理,这些字符串处理的方法都在 utils/input.ts 中,可以直接在 ~/utils 中导入。

reverseEscape

ts
/**
 * Reverse escape a string
 * @param quote default false, if true, the str will be wrapped with double quotes
 */
function reverseEscape(str: string, quote = false) : string
/**
 * Reverse escape a string
 * @param quote default false, if true, the str will be wrapped with double quotes
 */
function reverseEscape(str: string, quote = false) : string

反转义字符串,比如将 \n 转换为换行,将 \\ 转换为 \,将 \" 转换为 ",将 \' 转换为 '

这个函数的原理是利用来 JSON.parse 来进行反转义,所以如果字符串不是 JSON 格式的话,会抛出异常。所以需要用 "" 包裹字符串,提供 quote 参数,如果 quote 为 true,则会在字符串两边加上 "。如果字符串中包含 ",则还需要先转换为 \"

escapeDoubleQuote

ts
/**
 * Escape double quotes
 */
function escapeDoubleQuote(str: string): string
/**
 * Escape double quotes
 */
function escapeDoubleQuote(str: string): string

转义双引号,将 " 转换为 \"。结合 reverseEscape 使用。

isIntegerString, isNumberString

ts
const isIntegerString = (text: string) => /^[0-9]+$/.test(text)
const isNumberString = (text: string) => /^[0-9]+\.?[0-9]*$/.test(text)
const isIntegerString = (text: string) => /^[0-9]+$/.test(text)
const isNumberString = (text: string) => /^[0-9]+\.?[0-9]*$/.test(text)

判断字符串是否是整数或者数字。

string2Reg

ts
function string2Reg(str: string): RegExp
function string2Reg(str: string): RegExp

将字符串转为正则表达式对象。如果字符串不符合正则的格式,比如没有使用 // 包裹,则会当作普通字符串,会转义正则里的特殊字符。

ts
string2Reg('a|b')

/a\|b/

string2Reg('/a|b/')

/a|b/
string2Reg('a|b')

/a\|b/

string2Reg('/a|b/')

/a|b/

string2RegArray

ts
function string2RegArray(str: string): RegExp[][]
function string2RegArray(str: string): RegExp[][]

将字符串转为正则表达式对象。并且是二维数组。 比如

ts
string2RegArray('/a|b/')

[[/a|b/]]

string2RegArray('[/a|b/g, /$hello^/]; [/a|b/]')

[[/a|b/g, /$hello^/], [/a|b/]]
string2RegArray('/a|b/')

[[/a|b/]]

string2RegArray('[/a|b/g, /$hello^/]; [/a|b/]')

[[/a|b/g, /$hello^/], [/a|b/]]

具体支持的格式可以查看 自定义格式

string2ReplaceParam

ts
function string2ReplaceParam(str: string): ReplaceParam[]

interface ReplaceParam {
  regexp: RegExp
  newSubStr: string
  fnKey: number
}
function string2ReplaceParam(str: string): ReplaceParam[]

interface ReplaceParam {
  regexp: RegExp
  newSubStr: string
  fnKey: number
}

将 replace 函数的自定义格式,转换为 ReplaceParam 数组。

举个例子

ts
string2ReplaceParam('(/a|b/g, "new", 1)')

[{
  regexp: /a|b/g,
  newSubStr: "new",
  fnKey: 1
}]


string2ReplaceParam('(/a|b/g, "new", 1); (/a|b/g, "new", 1)')

[{
  regexp: /a|b/g,
  newSubStr: "new",
  fnKey: 1
},{
  regexp: /a|b/g,
  newSubStr: "new",
  fnKey: 1
}]
string2ReplaceParam('(/a|b/g, "new", 1)')

[{
  regexp: /a|b/g,
  newSubStr: "new",
  fnKey: 1
}]


string2ReplaceParam('(/a|b/g, "new", 1); (/a|b/g, "new", 1)')

[{
  regexp: /a|b/g,
  newSubStr: "new",
  fnKey: 1
},{
  regexp: /a|b/g,
  newSubStr: "new",
  fnKey: 1
}]

extractArray

ts
function extractArray(text: string, params: ReplaceParam[]): string[]
function extractArray(text: string, params: ReplaceParam[]): string[]

实现 replace 函数格式 的提取作用。

regFlag

ts
const regFlag: {
    add(reg: RegExp, flag: "g" | "i" | "m" | "s" | "y" | "u"): RegExp;
    remove(reg: RegExp, flag: "g" | "i" | "m" | "s" | "y" | "u"): RegExp;
}
const regFlag: {
    add(reg: RegExp, flag: "g" | "i" | "m" | "s" | "y" | "u"): RegExp;
    remove(reg: RegExp, flag: "g" | "i" | "m" | "s" | "y" | "u"): RegExp;
}

添加或者删除正则表达式的 flag。

Released under the MIT License.