如何获取子字符串的值并使用新值设置

时间:2016-07-06 23:48:53

标签: javascript

我有以下字符串myString =

protected $table = 'residentials';

/**
 * The attributes that are mass assignable.
 *
 * @var array
 */
protected $fillable = [
    'property_id', 'residential_type_id','furnished','rooms','rent'
];

public function Property()
{
    return $this->belongsTo('App\Property');
}


public function Residential_Type()
{
    return $this->belongsTo('App\Residential_types');
}

我想得到ts =" 1467847506"从此字符串中添加1467847506 + 3600 并将其设置回ts =" 1467851106"

所以最后的myString是:

 // Define table name
protected $table = 'residential_types';

protected $fillable = [
    'residential_type'
];


/**
 *
 */
public function Residential()
{
    return $this->hasMany('App\Residential', 'residential_type_id');
}

非常感谢任何帮助

1 个答案:

答案 0 :(得分:2)

要在字符串中嵌套引号,您应该使用单引号。否则,语法不正确。

至于问题本身,这是一个完美的例子,你可以使用split函数将字符串分成多个组件。这里看起来你有三个参数,每个参数用逗号分隔。

JavaScript中的数组是零索引的,所以为了找到ts的值,我们取数组的第二个元素(索引为1);

我们主要在这里寻找数字,所以我们可以调用replace函数来消除所有非数字字符(正则表达式\ D)

将其转换为+parseInt的数字。我们现在可以重置第二个元素以获得新值。

剩下的就是再次转换为字符串,我们执行与分割相反的join

请查看此代码段

var string = "id='eyJjbGFpbSI6IHsidHlwZSI6ICJkb21haW4iLCAicm9sZSI6ICJ1c2VyOk', ts='1467847506', nonce='YTcdzC'";

var components = string.split(',');
var ts = components[1];
var num = ts.replace(/\D/g, '');
var newNum = +(num) + 3600;
components[1] = "ts='" + newNum + "'"; 
string = components.join(', ');
console.log(string);