js 怎么将一个对象转成字符串

js 怎么将一个对象转成字符串,第1张

JavaScript将对象转化成字符,一般是使用JSONstringify()。

1、JSONstringify() 方法是将一个JavaScript值(对象或者数组)转换为一个 JSON字符串,如果指定了replacer是一个函数,则可以替换值,或者如果指定了replacer是一个数组,可选的仅包括指定的属性。

2、运行实例图:

扩展资料:

语法:JSONstringify(value[, replacer [, space]])

参数:

1、value,是将要序列化成 一个JSON 字符串的值。

2、replacer (可选),如果该参数是一个函数,则在序列化过程中,被序列化的值的每个属性都会经过该函数的转换和处理;如果该参数是一个数组,则只有包含在这个数组中的属性名才会被序列化到最终的 JSON 字符串中;如果该参数为null或者未提供,则对象所有的属性都会被序列化;

3、space (可选),指定缩进用的空白字符串,用于美化输出(pretty-print);如果参数是个数字,它代表有多少的空格;上限为10。该值若小于1,则意味着没有空格;如果该参数为字符串(字符串的前十个字母),该字符串将被作为空格;如果该参数没有提供(或者为null)将没有空格。

返回值 :一个表示给定值的JSON字符串。

MDN web docs—JSONstringify()

怎么说传给JS呢? 只能你在页面上输入,然后通过JS函数获取。但是你使用JS吧这字符串转换成XML格式还是可以得。但是不能存到硬盘,JS是脚本语言,也就是前段技术。不能通过JS脚本对计算机上的内同进行 *** 作。

JS字符串替换函数:Replace(“字符串1″, “字符串2″),   1我们都知道JS中字符串替换函数是Replace(“字符串1″, “字符串2″),但是这个函数只能将第一次出现的字符串1替换掉,那么我们如何才能一次性全部替换掉了?   <script>   var s = "LOVE LIFE ! LOVE JAVA ";  alert(s);   alert(sreplace("LOVE ", "爱"));  alert(sreplace(/\LOVE/g, "爱"));   </script>

function formatStr(str)  {  str=strreplace(/\r\n/ig,"<br/>");  return str;  }  要注意两点:  要使用正则表达式,不能使用 strreplace("\r\n", newString); ,这会导致只替换第一个匹配的子字符串。  母字符串中不一定 \r\n 会同时存在,也许只有 \n,没有 \r 也是可能的。   replace方法的语法是:stringObjreplace(rgExp, replaceText) 其中stringObj是字符串(string),reExp可以是正则表达式对象(RegExp)也可以是字符串(string),replaceText是替代查找到的字符串。。为了帮助大家更好的理解,下面举个简单例子说明一下    Js代码  <script language="javascript">   var stringObj="终古人民共和国,终古人民";      //替换错别字“终古”为“中国”   //并返回替换后的新字符   //原字符串stringObj的值没有改变   var newstr=stringObjreplace("终古","中国");   alert(newstr);   </script>      比我聪明的你,看完上面的例子之后,会发现第二个错别字“终古”并没有被替换成“中国”,我们可以执行二次replace方法把第二个错别字“终古”也替换掉,程序经过改进之后如下:    Js代码  <script language="javascript">   var stringObj="终古人民共和国,终古人民";      //替换错别字“终古”为“中国”   //并返回替换后的新字符   //原字符串stringObj的值没有改变   var newstr=stringObjreplace("终古","中国");      newstr=newstrreplace("终古","中国");   alert(newstr);   </script>      我们可以仔细的想一下,如果有N的N次方个错别字,是不是也要执行N的N次方replace方法来替换掉错别字呢??呵,不用怕,有了正则表达式之后不用一个错别字要执行一次replace方法。。程序经过改进之后的代码如下    Js代码  <script language="javascript">   var reg=new RegExp("终古","g"); //创建正则RegExp对象   var stringObj="终古人民共和国,终古人民";   var newstr=stringObjreplace(reg,"中国");   alert(newstr);   </script>  上面讲的是replace方法最简单的应用,不知道大家有没有看懂??下面开始讲稍微复杂一点的应用。。    大家在一些网站上搜索文章的时候,会发现这么一个现象,就是搜索的关键字会高亮改变颜色显示出来??这是怎么实现的呢??其实我们可以用正则表达式来实现,具体怎么样实现呢?简单的原理请看下面的代码    Js代码  <script language="javascript">   var str="中华人民共和国,中华人民共和国";   var newstr=strreplace(/(人)/g,"<font color=red>$1</font>");   documentwrite(newstr);   </script>  上面的程序缺少互动性,我们再改进一下程序,实现可以自主输入要查找的字符    Js代码  <script language="javascript">   var s=prompt("请输入在查找的字符","人");   var reg=new RegExp("("+s+")","g");   var str="中华人民共和国,中华人民共和国";   var newstr=strreplace(reg,"<font color=red>$1</font>");   documentwrite(newstr);   </script>    可能大家都会对$1这个特殊字符表示什么意思不是很理解,其实$1表示的就是左边表达式中括号内的字符,即第一个子匹配,同理可得$2表示第二个子匹配。。什么是子匹配呢??通俗点讲,就是左边每一个括号是第一个字匹配,第二个括号是第二个子匹配。。    当我们要把查找到的字符进行运算的时候,怎么样实现呢??在实现之前,我们先讲一下怎么样获取某一个函数的参数。。在函数Function的内部,有一个arguments集合,这个集合存储了当前函数的所有参数,通过arguments可以获取到函数的所有参数,为了大家理解,请看下面的代码    Js代码  <script language="javascript">   function test(){     alert("参数个数:"+argumentslength);     alert("每一个参数的值:"+arguments[0]);     alert("第二个参数的值"+arguments[1]);     //可以用for循环读取所有的参数   }      test("aa","bb","cc");   </script>  看懂上面的程序之后,我们再来看下面一个有趣的程序    Js代码  <script language="javascript">   var reg=new RegExp("\\d","g");   var str="abd1afa4sdf";   strreplace(reg,function(){alert(argumentslength);});   </script>      我们惊奇的发现,匿名函数竟然被执行了二次,并且在函数里还带有三个参数,为什么会执行二次呢??这个很容易想到,因为我们写的正则表达式是匹配单个数字的,而被检测的字符串刚好也有二个数字,故匿名函数被执行了二次。。在匿名函数内部的那三个参数到底是什么内容呢??为了弄清这个问题,我们看下面的代码。    Js代码  <script language="javascript">   function test(){   for(var i=0;i<argumentslength;i++){       alert("第"+(i+1)+"个参数的值:"+arguments);   }   }   var reg=new RegExp("\\d","g");   var str="abd1afa4sdf";   strreplace(reg,test);   </script>      经过观察我们发现,第一个参数表示匹配到的字符,第二个参数表示匹配时的字符最小索引位置(RegExpindex),第三个参数表示被匹配的字符串(RegExpinput)。其实这些参数的个数,还会随着子匹配的变多而变多的。弄清这些问题之后,我们可以用另外的一种写法    Js代码  <script language="javascript">   function test($1){     return "<font color=’red’>"+$1+"</font>"   }   var s=prompt("请输入在查找的字符","人");   var reg=new RegExp("("+s+")","g");   var str="中华人民共和国,中华人民共和国";   var newstr=strreplace(reg,test);   documentwrite(newstr);   </script>  看了上面的程序,原来可以对匹配到的字符为所欲为。下面简单举一个应用的例子    Js代码  <script language="javascript">   var str="他今年22岁,她今年20岁,他的爸爸今年45岁,她的爸爸今年44岁,一共有4人"   function test($1){     var gyear=(new Date())getYear()-parseInt($1)+1;     return $1+"("+gyear+"年出生)";   }   var reg=new RegExp("(\\d+)岁","g");   var newstr=strreplace(reg,test);   alert(str);   alert(newstr);   </script>

不用''引起来当然是不行的,

如正常的调用为: fnDoSth("AAAA");

如果你定义了:var s="AAAA"; 那么fnDoSth(s);那么没有问题

但是 直接调用fnDoSth(AAAA);就不行了,AAAA这里成了变量名了

java中的String:

什么是String

String就是java中的字符串,用双引号引起来的几个字符如"Abc","一天"

如何创建一个String

1String s1 = "ABCD";

2String s2 = new String("ABCD");

特别注意:

String类是不可变(final)的,对String类的任何改变,都是返回一个新的String类对象这样的话把String类的引用传递给一个方法,改方法对String的任何改变,对原引用指向的对象没有任何影响,这一点和基本数据类型相似

String s1,s2;

s1 = "abc";

s2 = "def";

s2 = s1;

//这样 *** 作之后s1还是abc,s2也是abc

String(字符类型)

字符串数据类型,可包含单一字元或字符串的变数型态。需要注意的是在NoahWeb中要指定字符串给字符串变量,要在头尾加上单引号 (例如: '中国')。

可以使用“ADD”运算符将多个字符进行连接运算。

表现层示例

<!-- NoahValue ValueName="'NoahWeb'" -->

示例输出

NoahWeb

示例说明

输出一个字符。

逻辑层示例

<SetVar Name="actiondesc" Value="'编辑内容'" />

示例说明

设置一个变量名为actiondesc的局部变量的内容为字符"编辑内容"

表现层示例

<!-- NoahValue ValueName="'NoahWeb'ADD'11'" -->

示例输出

NoahWeb11

示例说明

将两个字符串相加后输出。

逻辑层示例

<SetVar Name="actiondesc" Value="'编辑内容' ADD '动作'" />

示例说明

设置一个变量名为actiondesc的局部变量的内容为字符"编辑内容动作"

String 类

表示文本,即一系列 Unicode 字符。

命名空间: System

程序集: mscorlib(在 mscorlibdll 中)

语法

Visual Basic(声明)

<SerializableAttribute> _

<ComVisibleAttribute(True)> _

Public NotInheritable Class String

Implements IComparable, ICloneable, IConvertible, IComparable(Of String), _

IEnumerable(Of String), IEnumerable, IEquatable(Of String)

Visual Basic (用法)

Dim instance As String

C#

[SerializableAttribute]

[ComVisibleAttribute(true)]

public sealed class String : IComparable, ICloneable, IConvertible,

IComparable<string>, IEnumerable<string>, IEnumerable,

IEquatable<string>

C++

[SerializableAttribute]

[ComVisibleAttribute(true)]

public ref class String sealed : IComparable, ICloneable, IConvertible,

IComparable<String^>, IEnumerable<String^>, IEnumerable,

IEquatable<String^>

J#

/ @attribute SerializableAttribute() /

/ @attribute ComVisibleAttribute(true) /

public final class String implements IComparable, ICloneable,

IConvertible, IComparable<String>, IEnumerable<String>,

IEnumerable, IEquatable<String>

JScript

SerializableAttribute

ComVisibleAttribute(true)

public final class String implements IComparable, ICloneable,

IConvertible, IComparable<String>, IEnumerable<String>,

IEnumerable, IEquatable<String>

XAML

不适用。

备注

字符串是 Unicode 字符的有序集合,用于表示文本。String 对象是 SystemChar 对象的有序集合,用于表示字符串。String 对象的值是该有序集合的内容,并且该值是不可变的。

String 对象称为不可变的(只读),因为一旦创建了该对象,就不能修改该对象的值。看来似乎修改了 String 对象的方法实际上是返回一个包含修改内容的新 String 对象。如果需要修改字符串对象的实际内容,请使用 SystemTextStringBuilder 类。

字符串中的每个 Unicode 字符都是由 Unicode 标量值定义的,Unicode 标量值也称为 Unicode 码位或者 Unicode 字符的序号(数字)值。每个码位都是使用 UTF-16 编码进行编码的,编码的每个元素的数值都用一个 Char 对象表示。

一个 Char 对象通常表示一个码位,即:Char 的数值等于该码位。但是,一个码位可能需要多个编码元素。例如,Unicode 辅助码位(代理项对)使用两个 Char 对象来编码。

索引

索引是 Char 对象在 String 中的位置,而不是 Unicode 字符的位置。索引是从零开始、从字符串的起始位置(其索引为零)计起的非负数字。连续的索引值可能并不与连续的 Unicode 字符相对应,这是因为一个 Unicode 字符可能会编码为多个 Char 对象。若要使用每个 Unicode 字符而不是每个 Char 对象,请使用 SystemGlobalizationStringInfo 类。

序号运算和区分区域性的运算

String 类的成员对 String 对象执行序号运算或语义运算。序号运算是对每个 Char 对象的数值执行的。语义运算则对考虑了特定于区域性的大小写、排序、格式化和语法分析规则的 String 的值执行。语义运算在显式声明的区域性或者隐式当前区域性的上下文中执行。有关当前区域性的更多信息,请参见 CultureInfoCurrentCulture 主题。

大小写规则决定如何更改 Unicode 字符的大小写,例如,从小写变为大写。

格式化规则决定如何将值转换为它的字符串表示形式,而语法分析规则则确定如何将字符串表示形式转换为值。

排序规则确定 Unicode 字符的字母顺序,以及两个字符串如何互相比较。例如,Compare 方法执行语义比较,而 CompareOrdinal 方法执行序号比较。因此,如果当前的区域性为美国英语,则 Compare 方法认为“a”小于“A”,而 CompareOrdinal 方法会认为“a”大于“A”。

NET Framework 支持单词、字符串和序号排序规则。单词排序会执行区分区域性的字符串比较,在这种比较中,某些非字母数字 Unicode 字符可能会具有特殊的权重。例如,连字符(“-”)的权重非常小,因此“coop”和“co-op”在排序列表中是紧挨着出现的。字符串排序与单词排序相似,只是所有非字母数字符号均排在所有字母数字 Unicode 字符前面,没有特例。

区分区域性的比较是显式或隐式使用 CultureInfo 对象的任何比较,包括由 CultureInfoInvariantCulture 属性指定的固定区域性。当前隐式区域性由 ThreadCurrentCulture 属性指定。

序号排序基于字符串中每个 Char 对象的数值对字符串进行比较。序号比较自动区分大小写,因为字符的小写和大写版本有着不同的码位。但是,如果大小写在应用程序中并不重要,则可以指定忽略大小写的序号比较。这相当于使用固定区域性将字符串转换为大写,然后对结果执行序号比较。

有关单词、字符串和序号排序规则的更多信息,请参见 SystemGlobalizationCompareOptions 主题。

区分区域性的比较通常适用于排序,而序号比较则不适合。序号比较通常适用于确定两个字符串是否相等(即,确定标识),而区分区域性的比较则不适用。

比较和搜索方法的“备注”指定方法是区分大小写、区分区域性还是两者区分。根据定义,任何字符串(包括空字符串 (""))的比较结果都大于空引用;两个空引用的比较结果为相等。

规范化

某些 Unicode 字符具有多个等效的二进制表示形式,这些表示形式中包含几组组合的和/或复合的 Unicode 字符。Unicode 标准定义了一个称为规范化的过程,此过程将一个字符的任何一种等价二进制表示形式转换为统一的二进制表示形式。可使用多种遵循不同规则的算法执行规范化,这些算法也称为范式。NET Framework 当前支持范式 C、D、KC 和 KD。通常用序号比较来评估一对规范化的字符串。

安全注意事项

如果应用程序进行有关符号标识符(如文件名或命名管道)或持久数据(如 XML 文件中基于文本的数据)的安全决策,则该 *** 作应该使用序号比较而不是区分区域性的比较。这是因为根据起作用的区域性的不同,区分区域性的比较可产生不同的结果,而序号比较则仅依赖于所比较字符的二进制值。

功能

String 类提供的成员执行以下 *** 作:比较 String 对象;返回 String 对象内字符或字符串的索引;复制 String 对象的值;分隔字符串或组合字符串;修改字符串的值;将数字、日期和时间或枚举值的格式设置为字符串;对字符串进行规范化。

使用 Compare、CompareOrdinal、CompareTo、Equals、EndsWith 和 StartsWith 方法进行比较。

使用 IndexOf、IndexOfAny、LastIndexOf 和 LastIndexOfAny 方法可获取字符串中子字符串或 Unicode 字符的索引。

使用 Copy 和 CopyTo 可将字符串或子字符串复制到另一个字符串或 Char 类型的数组。

使用 Substring 和 Split 方法可通过原始字符串的组成部分创建一个或多个新字符串;使用 Concat 和 Join 方法可通过一个或多个子字符串创建新字符串。

使用 Insert、Replace、Remove、PadLeft、PadRight、Trim、TrimEnd 和 TrimStart 可修改字符串的全部或部分。

使用 ToLower、ToLowerInvariant、ToUpper 和 ToUpperInvariant 方法可更改字符串中 Unicode 字符的大小写。

使用 Format, 可将字符串中的一个或多个格式项占位符替换为一个或多个数字、日期和时间或枚举值的文本表示形式。

使用 Length 属性可获取字符串中 Char 对象的数量;使用 Chars 属性可访问字符串中实际的 Char 对象。

使用 IsNormalized 方法可测试某个字符串是否已规范化为特定的范式。使用 Normalize 方法可创建规范化为特定范式的字符串。

实现的接口

String 类分别用于实现 IComparable、ICloneable、IConvertible、IEnumerable 和 IComparable 接口。使用 Convert 类进行转换,而不是使用此类型的 IConvertible 显式接口成员实现。

继承层次结构

SystemObject

SystemString

线程安全

此类型是线程安全的。

平台

Windows 98, Windows Server 2000 SP4, Windows CE, Windows Millennium Edition, Windows Mobile for Pocket PC, Windows Mobile for Smartphone, Windows Server 2003, Windows XP Media Center Edition, Windows XP Professional x64 Edition, Windows XP SP2, Windows XP Starter Edition

Windows Vista、Microsoft Windows XP SP2 和 Windows Server 2003 SP1 支持 Microsoft NET Framework 30。

版本信息

NET Framework

受以下版本支持:30、20、11、10

NET Compact Framework

受以下版本支持:20、10

XNA Framework

受以下版本支持:10

中的词条内容仅供参考,如果您需要解决具体问题

(尤其在法律、医学等领域),建议您咨询相关领域专业人士。 本词条对我有帮助

108

[我来完善]相关词条:

更多

vectorselectobjectinteger

开放分类:

程序,语言,数据

合作编辑者:

jack_gaojj、aryyu、fuhaiwei、冰漪涟飒淅

如果您认为本词条还需进一步完善,百科欢迎您也来参与编辑词条 在开始编辑前,您还可以先学习如何编辑词条

“string”在英汉词典中的解释(来源:百度词典):

string

KK: []

DJ: []

n

1 线;细绳;带子[U][C]

2 (附在衣服等上的)带子,丝带[C]

3 (穿珠,钱等的)串线,串绳[C]

4 一串,一行,一列[C][(+of)]

5 (植物的)纤维,筋[C]

6 (乐器等的)弦[C]

7 附带条件[P]

vt

1 (用线,绳)缚,扎,挂

2 (用线)穿,串起;使排成一列

3 抽去(豆荚等的)筋

4 上弦于(弓,乐器)上;调(乐器)的弦

5 伸展,拉直

6 使(精神等)紧张,使作好准备;使兴奋,使敏感[(+up)]

7 戏弄;欺骗[(+along)]

vi

1 成线索状;连成一串

2 排成一行前进

欢迎分享,转载请注明来源:内存溢出

原文地址: http://outofmemory.cn/langs/12188647.html

(0)
打赏 微信扫一扫 微信扫一扫 支付宝扫一扫 支付宝扫一扫
上一篇 2023-05-21
下一篇 2023-05-21

发表评论

登录后才能评论

评论列表(0条)

保存