Heim > Fragen und Antworten > Hauptteil
var string="content=ABCDEFGHIJKLMN="
var ca = string.split("=");
ca[0]=content;
ca[1]=ABCDEFGHIJKLMN;
ca[2]="";
Aber Ich möchte das zweite Gleichheitszeichen nicht abfangen (es muss beibehalten werden), wie soll ich damit umgehen?
我想大声告诉你2017-06-15 09:25:13
用正则吧
var string="content=ABCDEFGHIJKLMN="
var ca = string.split(/=(?=.)/);
大家讲道理2017-06-15 09:25:13
你不太适合编程啊孩子。。。
直接取ca[1]+"="
就可以了,干嘛非得取到原来的等号呢?思路一定要灵活,等价这个词对于一个程序员是很重要的。
typecho2017-06-15 09:25:13
看了你在各回答的评论,妄且猜测你大概是这么一个意图:试图去找出一个编程语言内置的方法,去实现这个功能。只需要调用一下它,比如调用个函数,或者加个参数。
对么?
但是问题是现在语言很可能(因为我本人并不十分精通js,不敢下定论一定没有)并没有加入这么一个内置的功能特性,那你就需要自己去实现它。
其实语言内置的功能,也只是别人预先实现好的而已。你非要去找出一个,反而落入了死板。
正如@G_Koala_C所说用简单直观的方式解决问题才是王道。
三叔2017-06-15 09:25:13
如果是有大于两个的=不就坑了?所以还得
str1 = ca[0];
ca.shift();
str2 = ca.join('=');
个人喜欢正则,不过也可以用indexof找到第一个=。但是此方法还要判断返回值是否为-1。
巴扎黑2017-06-15 09:25:13
stringObject.split(separator,howmany)
separator 必需。字符串或正则表达式,从该参数指定的地方分割 stringObject。
howmany 可选。该参数可指定返回的数组的最大长度。如果设置了该参数,返回的子串不会多于这个参数指定的数组。如果没有设置该参数,整个字符串都会被分割,不考虑它的长度。
用法出处http://www.w3school.com.cn/js...
迷茫2017-06-15 09:25:13
看了 node.js
的querystring
模块的源码,按照源码的思路是这样处理的:
var string="content=ABCDEFGHIJKLMN="
var kstr,vstr;
var idx=string.indexOf('=')
if(idx>=0){
kstr=string.substr(0,idx)
vstr=string.substr(idx+1)
}else{
kstr=string
vstr=''
}
console.log(kstr,vstr) //=>content ABCDEFGHIJKLMN=