使用javascript获取两个单词之间的文本
我有一个字符串,它看起来像一个XML文件,但实际上它只是一个保存在变量中的普通字符串 字符串如下所示:使用javascript获取两个单词之间的文本,javascript,android,string,titanium,Javascript,Android,String,Titanium,我有一个字符串,它看起来像一个XML文件,但实际上它只是一个保存在变量中的普通字符串 字符串如下所示: <m:properties> <d:user_id m:type="Edm.Int64">37</d:user_id> <d:organization_id m:type="Edm.Int64">1</d:organization_id> <d:nam
<m:properties>
<d:user_id m:type="Edm.Int64">37</d:user_id>
<d:organization_id m:type="Edm.Int64">1</d:organization_id>
<d:name>Test</d:name>
<d:password>81dc9bdb52d04dc20036dbd8313ed055</d:password>
<d:email_id>test1@cs.com</d:email_id>
<d:user_type_id m:type="Edm.Int32">3</d:user_type_id>
<d:is_valid m:type="Edm.Boolean">true</d:is_valid>
<d:registration_date m:type="Edm.DateTime">2012-10-25T11:20:08</d:registration_date>
</m:properties>
37
1.
试验
81dc9bdb52d04dc20036dbd8313ed055
test1@cs.com
3.
真的
2012-10-25T11:20:08
我需要在以下范围内提取文本:
和
的内容是动态的
如何使用javascript字符串处理函数提取所需的文本?假设您发布的所有字符串都存储在名为myCode的变量中,那么您需要从myCode中提取密码和电子邮件
var passwd = myCode.substring(myCode.indexOf("<d:password>")+12,myCode.length-myCode.indexOf("</d:password>"));
var email = myCode.substring(myCode.indexOf("<d:email_id>")+11,myCode.length-myCode.indexOf("</d:email_id>"));
var passwd=myCode.substring(myCode.indexOf(“”+12,myCode.length myCode.indexOf(“”));
var email=myCode.substring(myCode.indexOf(“”+11,myCode.length myCode.indexOf(“”));
如果这个字符串是规则的(即,它的结构永远不会改变),那么你可以使用正则表达式,但是,它非常接近HTML/XML,它是不规则的,正则表达式和不规则不能同时使用。他们没有太多的共同点,如果我甚至建议一个正则表达式,我将失去所有的代表在向下投票风暴将随之而来。所以
如果此字符串是规则字符串,则这是快速清洁的可能解决方案:
String name = text.split(">")[6].split("<")[0];
String password = text.split(">")[8].split("<")[0];
String name=text.split(“>”[6]。split(“”[8]。split(“”+5)。split(“”+9)。split(一个非常简单的答案,不需要太在意计数:
var password = text.split("<d:password>")[1].split("</d:password>")[0];
var email = text.split("<d:email_id>")[1].split("</d:email_id>")[0];
var password=text.split(“”[1]。split(“”[0];
var email=text.split(“”[1]。split(“”[0];
在这里,您必须确保的唯一一点是您没有多个相同的标记。如果存在多个标记,第一个索引将说明您希望出现哪一个。另一个仍然为0。为此,您应该真正使用XML解析器。为什么要使用字符串函数呢?和的长度可能不是静态的。因此,在此基础上进行计算可能不是个好主意!我知道,但至少它满足了这个特殊情况的要求,不是吗?是的,但这不是一个永久性的解决方案,因为它总是变化。字符串实际上是一个服务器响应。那么他们有没有办法回答这个特殊的复杂性呢?
var password = text.split("<d:password>")[1].split("</d:password>")[0];
var email = text.split("<d:email_id>")[1].split("</d:email_id>")[0];