UrlUtil.ts 1.4 KB

1234567891011121314151617181920212223242526272829303132333435363738394041424344454647484950515253
  1. export default class UrlUtil {
  2. /**
  3. * 获取URL参数(字符串)
  4. * @param url 地址
  5. * @returns {string}
  6. */
  7. private static getParamString(url?: string): string {
  8. url = url || window.location?.href;
  9. if (url != void 0) {
  10. let index = url.indexOf('?');
  11. if (index != -1) {
  12. return url.substring(index + 1);
  13. }
  14. }
  15. return null;
  16. }
  17. /**
  18. * 获取URL参数
  19. * @param url 地址
  20. * @returns {JSON}
  21. */
  22. public static getParam(url?: string): { [key: string]: string } {
  23. let param = {};
  24. let paramString = this.getParamString(url);
  25. if (paramString) {
  26. paramString.split("&").forEach((value: string) => {
  27. let values = value.split("=");
  28. if (values.length == 2) {
  29. param[values[0]] = values[1];
  30. }
  31. });
  32. }
  33. return param;
  34. }
  35. /**
  36. * 根据key获取URL参数
  37. * @param key key
  38. * @param url 地址
  39. * @returns {string}
  40. */
  41. public static getParamValue(key: string, url?: string): string {
  42. let paramString = this.getParamString(url);
  43. if (paramString) {
  44. let values = paramString.match(`(^|&)${key}=([^&]*)(&|$)`);
  45. if (values) {
  46. return values[2];
  47. }
  48. }
  49. return null;
  50. }
  51. }