This commit is contained in:
2023-04-06 23:17:44 +08:00
parent 6157f994a9
commit 449196b491
6 changed files with 244 additions and 59 deletions

View File

@ -1,4 +1,5 @@
export function nullOrEmpty(s?: string | any | null): boolean
export function contains(s: string, key: string | any, ignoreCase?: boolean): boolean
export function endsWith(s: string, suffix: string): boolean
export function padStart(s: string, num: Number, char: string): boolean
export function padStart(s: string, num: Number, char: string): boolean
export function formatUrl(msg: string): string

View File

@ -48,6 +48,12 @@
<p>
用此字符串填充,使得字符串对齐,默认为 ' '
</p>
<h2>formatUrl</h2>
<code>function formatUrl(msg: string): string</code>
<h3>msg: string</h3>
<p>
把超链接解析替换为图标
</p>
<hr />
<h2>用法</h2>
<pre>const util = window["lib-utility"];

View File

@ -29,9 +29,37 @@ function padStart(s, num, char) {
return (char ?? ' ').repeat(num - s.length);
}
function formatUrl(msg) {
//const urlReg = /(https?:\/\/)?([\da-z\.-]+)\.([a-z\.]{2,6})([\/\w \.-]*)*\/?/ig;
//const urlArrray = str.match(urlReg);
const p = /(http|ftp|https):\/\/.+?(\s|\r\n|\r|\n|\"|\'|\*|$)/g;
const r = msg.match(p);
msg = htmlencode(msg);
if (r?.length > 0) {
const rs = [];
for (let t of r) {
t = t.replace(/["'\r\n ]/g, '');
if (rs.indexOf(t) < 0) {
rs.push(t);
}
}
for (let r of rs) {
msg = msg.replaceAll(r, '<a target="_blank" href="' + r + '"><svg><use xlink:href="' + ((typeof consts !== 'undefined' && consts.path) ?? '') + 'fonts/fa-regular.svg#link"></use></svg></a>');
}
}
return msg
.replaceAll('\r\n', '<br/>')
.replaceAll('\n', '<br/>')
.replaceAll(' ', '&nbsp;');
}
export {
nullOrEmpty,
contains,
endsWith,
padStart
padStart,
formatUrl
}