在最近一个小屁项目中,没有服务端(其实服务端是人家早已经写好的服务),留给我的就只有一大堆的Html和JS,写的好烦躁,所以就写了几个扩展。
多个不说的,这里只是记录,code附上,便以后查询:
- 代码
- ; String.format = function() {
- var s = arguments[0];
- for (var i = 0; i < arguments.length - 1; i++) {
- var reg = new RegExp("\\{" + i + "\\}", "gm");
- s = s.replace(reg, arguments[i + 1]);
- }
- return s;
- };
- String.prototype.endsWith = function(suffix) {
- return (this.substr(this.length - suffix.length) === suffix);
- };
- String.prototype.startsWith = function(prefix) {
- return (this.substr(0, prefix.length) === prefix);
- };
- String.prototype.isPositiveInteger = function() {
- return (new RegExp(/^[1-9]\d*$/).test(this));
- };
- String.prototype.trim = function() {
- return this.replace(/(^\s*)|(\s*$)|\r|\n/g, "");
- };
- String.prototype.trimLeft = function() {
- return this.replace(/(^\s*)|\r|\n/g, "");
- };
- String.prototype.trimRight = function() {
- return this.replace(/(\s*$)|\r|\n/g, "");
- };
- String.prototype.isInteger = function() {
- return (new RegExp(/^\d+$/).test(this));
- };
- String.prototype.isNumber = function(value, element) {
- return (new RegExp(/^-?(?:\d+|\d{1,3}(?:,\d{3})+)(?:\.\d+)?$/).test(this));
- };
- String.prototype.isValidMail = function() {
- return (new RegExp(/^\w+((-\w+)|(\.\w+))*\@[A-Za-z0-9]+((\.|-)[A-Za-z0-9]+)*\.[A-Za-z0-9]+$/).test(this.trim()));
- };
- String.prototype.isPhone = function() {
- return (new RegExp(/(^([0-9]{3,4}[-])?\d{3,8}(-\d{1,6})?$)|(^\([0-9]{3,4}\)\d{3,8}(\(\d{1,6}\))?$)|(^\d{3,8}$)/).test(this));
- };
- String.prototype.isURL = function() {
- return (new RegExp(/^[a-zA-z]+:\/\/(\w+(-\w+)*)(\.(\w+(-\w+)*))*(\?\S*)?$/).test(this));
- };
- String.prototype.trans = function() {
- return this.replace(/</g, '<').replace(/>/g, '>').replace(/"/g, '"');
- };
- function StringBuilder() {
- var sb = new Array();
- if (arguments[0] != undefined && arguments[0] != null) {
- sb[0] = arguments[0];
- }
- this.append = function(str) {
- sb[sb.length] = str;
- };
- this.appendFormat = function() {
- var s = arguments[0];
- for (var i = 0; i < arguments.length - 1; i++) {
- var reg = new RegExp("\\{" + i + "\\}", "gm");
- s = s.replace(reg, arguments[i + 1]);
- }
- sb[sb.length] = s;
- };
- this.toString = function() {
- /* var s = "";
- for (var i = 0; i < sb.length; i++) {
- s += sb[i];
- }
- return s;*/
- if (arguments[0] != undefined && arguments[0] != null) {
- return sb.join(arguments[0]);
- }
- return sb.join("");
- };
- this.replace = function(index, str) {
- sb[index] = str;
- };
- this.replaceFormat = function() {
- var s = arguments[1];
- for (var i = 0; i < arguments.length - 2; i++) {
- var reg = new RegExp("\\{" + i + "\\}", "gm");
- s = s.replace(reg, arguments[i + 2]);
- }
- this.replace(arguments[0], s);
- };
- this.remove = function(index) {
- for (var i = index + 1; i < sb.length; i++) {
- sb[i - 1] = sb[i];
- }
- sb.length = sb.length - 1;
- };
- this.insert = function(index, str) {
- var len = sb.length + 1;
- for (var i = index; i < len; i++) {
- sb[i + 1] = sb[i];
- }
- sb[index] = str;
- };
- this.insertFormat = function() {
- var s = arguments[1];
- for (var i = 0; i < arguments.length - 2; i++) {
- var reg = new RegExp("\\{" + i + "\\}", "gm");
- s = s.replace(reg, arguments[i + 2]);
- }
- this.insert(arguments[0], s);
- };
- this.length = function() {
- return sb.length;
- };
- this.appendLine = function() {
- if (arguments[0] != undefined && arguments[0] != null) {
- this.append(arguments[0]);
- }
- else {
- this.append("\r\n");
- }
- }
- };
- /* TODO:test utils
- var sb = new StringBuilder(true);
- sb.append("123");
- sb.appendFormat("{0}+{1}", 22, "22");
- sb.appendFormat("{0}+{1}", 3333, "333");
- //alert(sb.toString());
- sb.insert(1, " test insert ");
- sb.insertFormat(1, "{0}***{1}", 111, "11 ");
- sb.replaceFormat(0, "{0}%%%{1}", 000, "00");
- alert(sb.toString(" g "));*/
- function Uri(urlstr) {
- var uri = urlstr;
- if (uri == undefined || uri == null || uri == "") {
- uri = window.location.href;
- };
- this.Host = function() {
- var r = uri.split("?");
- if (r.length > 0) {
- return r[0];
- }
- return "";
- };
- this.searchString = function() {
- var r = uri.split("?");
- if (r.length > 1) {
- return unescape(r[1]);
- }
- return "";
- };
- this.Params = function() {
- var search = this.searchString();
- if (search == "")
- return null;
- var obj = new Array();
- var pair = search.split("&");
- if (pair.length > 0) {
- for (var i = 0; i < pair.length; i++) {
- var pairArr = pair[i].split("=");
- obj[pairArr[0]] = pairArr[1];
- }
- }
- return obj;
- };
- this.QueryParam = function(key, def) {
- var obj = this.Params();
- if (obj != null) {
- var value = obj[key];
- if (value != undefined && value != null) {
- return value;
- }
- }
- return def;
- };
- }
- 复制代码
测试代码:
- 代码
- <!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd%22>
- <html xmlns="http://www.w3.org/1999/xhtml%22>
- <head>
- <title></title>
- <style type="text/css">
- body
- {
- background-color: Black;
- }
- div
- {
- border-bottom-width: 1px;
- border-left-width: 0px;
- border-top-width: 1px;
- border-right-width: 0px;
- border-style: solid;
- border-color: Lime;
- width: 98%;
- margin: 8,8;
- padding: 10px;
- background-color: Black;
- color: Olive;
- }
- </style>
- <script src="Wolf.Utils.JSExtesion.js" type="text/javascript"></script>
- <script type="text/javascript">
- function StringTest() {
- document.getElementById("result1").innerHTML = String.format("My blog : cnBlogs:{0} ,CSDN :{1}", "http://www.cnblogs.com/whitewolf/%22, "http://blog.csdn.net/grzx2210%22)
- + "<br/>" + " Wolf ".trim() + " Wolf ".trimLeft() + " Wolf ".trimRight() + "122".isInteger();
- }
- function StringBuilderTest() {
- var sb = new StringBuilder();
- sb.appendFormat("My blog : cnBlogs:{0} ,CSDN :{1}", "http://www.cnblogs.com/whitewolf/%22, "http://blog.csdn.net/grzx2210%22);
- sb.append("<br/>");
- sb.append(" remove");
- sb.remove(2);
- sb.append("whitewolf");
- sb.appendLine("<br/>");
- document.getElementById("result2").innerHTML = "tostring()" + sb.toString() + "<br/>tostring(';')" + sb.toString(";");
- }
- function UriTest() {
- var uri = new Uri();
- document.getElementById("result3").innerHTML = "searchString:" + uri.searchString + "<br/>id=" + uri.QueryParam("id", "id empty");
- }
- function Test() {
- StringTest();
- StringBuilderTest();
- UriTest();
- };
- </script>
- </head>
- <body onload="Test();">
- <div id="result1">
- </div>
- <div id="result2">
- </div>
- <div id="result3">
- </div>
- </body>
- </html>
- 复制代码
效果:
本文转自 破狼 51CTO博客,原文链接:http://blog.51cto.com/whitewolfblog/834775,如需转载请自行联系原作者