`

string.prototype的使用详解

阅读更多

 

//String.prototype使用   
  
//批量替换,比如:str.ReplaceAll([/a/g,/b/g,/c/g],["aaa","bbb","ccc"])   
String.prototype.ReplaceAll=function (A,B) {   
    var C=this;   
    for(var i=0;i<A.length;i++) {   
        C=C.replace(A[i],B[i]);   
    };   
    return C;   
};   
  
// 去掉字符两端的空白字符   
String.prototype.Trim=function () {   
    return this.replace(/(^[/t/n/r]*)|([/t/n/r]*$)/g,'');   
};   
  
// 去掉字符左边的空白字符   
String.prototype.LTrim=function () {   
    return this.replace(/^[/t/n/r]/g,'');   
};   
  
// 去掉字符右边的空白字符   
String.prototype.RTrim=function () {   
    return this.replace(/[/t/n/r]*$/g,'');   
};   
  
// 返回字符的长度,一个中文算2个   
String.prototype.ChineseLength=function()   
{    
    return this.replace(/[^/x00-/xff]/g,"**").length;   
};   
  
// 判断字符串是否以指定的字符串结束   
String.prototype.EndsWith=function (A,B) {   
    var C=this.length;   
    var D=A.length;   
    if(D>C)return false;   
    if(B) {   
        var E=new RegExp(A+'$','i');   
        return E.test(this);   
    }else return (D==0||this.substr(C-D,D)==A);   
};   
// 判断字符串是否以指定的字符串开始   
String.prototype.StartsWith = function(str)    
{   
    return this.substr(0, str.length) == str;   
};   
// 字符串从哪开始多长字符去掉   
String.prototype.Remove=function (A,B) {   
    var s='';   
    if(A>0)s=this.substring(0,A);   
    if(A+B<this.length)s+=this.substring(A+B,this.length);   
    return s;   
};  

 自定义string类型的方法:

 

 

<mce:script language=javascript><!--
   
//全角空格为12288,半角空格为32   
//其他字符半角(33-126)与全角(65281-65374)的对应关系是:均相差65248   
//document.write((65281).toString(16)+"----"+   
//(65374).toString(16)+"----"+(12288).toString(16));   
String.prototype.dbc2sbc = function ()   
{   
     return this.replace(/[/uff01-/uff5e]/g,   
         function(a){   
             return String.fromCharCode(a.charCodeAt(0)-65248);   
         }).replace(//u3000/g," ");   
}   
document.write("ABC 123,我们都是好朋友".dbc2sbc());   
// --></mce:script>  

 

 

这里说明下这个代码

this.replace(/[/uff00-/uff5e]/g),......先看这一半  其实是把全角在65281-65374之间的换为半角

之后的函数是function返回的字符

在其中的函数也把空格符  也就是全角的空格是/u3000  换成空格

 

分享到:
评论

相关推荐

    [hook.js]通用Javascript函数钩子

    [bool]hook:params{ realFunc[String|must]:用于保存原始函数的函数...String.prototype.slice.unhook("_slice","slice",String.prototype); var str = "pnig0s"; str.slice(1); myHooks.cleanEnv(); //clear hooks

    详解JavaScript中数组和字符串的lastIndexOf()方法使用

    Array.prototype.lastIndexOf 和 String.prototype.lastIndexOf 是非常的实用的方法,不过很多人不知道它其实可以传递两个参数,第二个参数决定了搜索的起始位置: 语法 str.lastIndexOf(searchValue[, fromIndex]...

    详解React项目中碰到的IE问题

    String.prototype.startsWith = function (search, pos) { return this.substr(!pos || pos &lt; 0 ? 0 : +pos, search.length) === search } } 不过加prototype的方法毕竟不好,可以通过引入@babel/pol

    JavaScript trim 去除字符串空格的三种方法(附代码详解)

    方法一: 正则替换 推荐个人认为最好的方法.采用的是正则表达式,这是最核心的原理. 下面是代码原文 代码如下: [removed] &lt;!– //出处:网上搜集 //For ... } String.prototype.LTrim = function() { return this.repl

    JavaScript中的原型prototype属性使用详解

    prototype属性可以将属性和方法添加到任何对象(Number, Boolean, String 和Date等)。 注:原型(Prototype)是一个全局的属性,它可以使用在几乎所有的对象。 语法 object.prototype.name = value 实例: 这里有一个...

    详解javascript常用工具类的封装

    return Object.prototype.toString.call(o).slice(8, -1) === 'String' } isNumber (o) { //是否数字 return Object.prototype.toString.call(o).slice(8, -1) === 'Number' } isObj (o) { //是否对象 return ...

    详解JS中Array对象扩展与String对象扩展

    if (typeof Array.prototype.forEach != "function") { Array.prototype.forEach = function (fn, context) { for (var i = 0; i &lt; this.length; i++) { if (typeof fn === "function" && Object.pr

    自己动手实现jQuery Callbacks完整功能代码详解

    用法和$.Callbacks完全一致 , 但是只是实现了add , remove , fire , empty, ... 代码如下: String.prototype.trim = function () { return this.replace( /^\s+|\s+$/g, ” ); };  // Simulate jQuery.Callbacks

    利用JavaScript对中文(汉字)进行排序实例详解

    前言 在网页上展示列表时经常需要对列表进行排序:按照修改/访问时间排序、按照地区、按照名称排序。 对于中文列表按照名称排序就是按照拼音排序,不能简单通过字符串比较—— ‘a’ &gt; ‘b’...String.prototype.locale

    详解Javascript数据类型的转换规则

    5种基本数据类型:Null/Undefined/String/Boolean/Number 1种复杂数据类型:Object 二、数据类型检测 传送门《JS中检测数据类型的几种方式及优缺点小结》 1、typeof 2、instanceof/constructor 3、Object.prototype....

    详解Chai.js断言库API中文文档

    expect和should是BDD风格的,二者使用相同的链式语言来组织断言,但不同在于他们初始化断言的方式:expect使用构造函数来创建断言对象实例,而should通过为Object.prototype新增方法来实现断言(所以should不支持IE...

    详解Vue源码中一些util函数

    Object.prototype.toString.call(arg) 和 String(arg) 的区别? 上述两个表达式都是尝试将一个参数转化为字符串,但是还是有区别的。 String(arg) 会尝试调用 arg.toString() 或者 arg.valueOf(), 所以如果arg或者...

    重学JS之显示强制类型转换详解

    ToString负责处理非字符串到字符串的强制类型转换,常用的字符串化方法String()、toString()。 基本类型值的字符串化规则: null转换为’null’ undefined转换为’undefined’ true转化为’true’ 数字的字符串...

    详解vue挂载到dom上会发生什么

    vue 挂载到dom 元素后发生了什么 前一篇文章分析了new vue() 初始化时所执行的操作,主要包括调用vue._init 执行一系列的初始化,...Vue.prototype.$mount = function ( el?: string | Element, hydrating?: boolean

    Javascript学习笔记-详解in运算符

    一、判断 语法 prop in objectName 如果objectName指向的对象中含有prop这个属性或者键值,in运算符会返回true。...//true 原型链 in运算符会在整个原型链上查询给定的prop属性 代码如下: Object.prototype.s

    JavaScript详解(第2版)

     8.5.1 使用prototype属性为对象添加属性   8.5.2 原型查找链   8.5.3 使用原型为对象添加方法   8.5.4 所有对象都有的属性和方法   8.5.5 创建子类及继承   8.6 应知应会   练习   第9章 ...

    asp.net知识库

    ASP.NET2.0 ObjectDataSource的使用详解(3) ASP.NET2.0 快速入门 ----默认中的主题外观 数据库开发 ADO.NET 通过DataTable获得表的主键 ADO.NET 2.0 操作实例 ADO.NET 2.0 大批量数据操作和多个动态的结果集 ADO...

Global site tag (gtag.js) - Google Analytics