JS截取与分割字符串常用技巧总结

函数:substring()

定义:substring(start,end)表示从start到end之间的字符串,包括start位置的字符但是不包括end位置的字符。
功能:字符串截取,比如想从"MinidxSearchEngine"中得到"Minidx"就要用到substring(0,6)

var src="images/off_1.png";
alert(src.substring(7,10));
//弹出值为:off

函数:substr()

定义:substr(start,length)表示从start位置开始,截取length长度的字符串。
功能:字符串截取

var src="images/off_1.png";
alert(src.substr(7,3));
//弹出值为:off
substr 和 substring方法的区别

substr 方法

返回一个从指定位置开始的指定长度的子字符串。
stringvar.substr(start [, length ])
参数:
stringvar:必选项。要提取子字符串的字符串文字或 String 对象。
start:必选项。所需的子字符串的起始位置。字符串中的第一个字符的索引为 0。
length:可选项。在返回的子字符串中应包括的字符个数。
说明:如果 length 为 0 或负数,将返回一个空字符串。
如果没有指定该参数,则子字符串将延续到 stringvar 的最后。
下面的示例演示了substr 方法的用法

function SubstrDemo(){
 var s, ss;    // 声明变量。
 var s = "The rain in Spain falls mainly in the plain.";
 ss = s.substr(12, 5); // 获取子字符串。
 return(ss);    // 返回 "Spain"。
}

substring 方法
返回位于 String 对象中指定位置的子字符串。
stringObject.substring(start, end)
参数:
start:必需。一个非负的整数,指明子字符串的起始位置,该索引从 0 开始起算。
end:可选。一个非负的整数,比要提取的子串的最后一个字符在 stringObject 中的位置多 1。如果省略该参数,那么返回的子串会一直到字符串的结尾。指明子字符串的结束位置,该索引从 0 开始起算。
返回值:
一个新的字符串,该字符串值包含 stringObject 的一个子字符串,其内容是从 start 处到 end-1 处的所有字符,其长度为 end减 start。
说明:
substring 方法将返回一个包含从 start 到最后(不包含 end )的子字符串的字符串。
substring 方法使用 start 和 end 两者中的较小值作为子字符串的起始点。例如, strvar.substring(0, 3) 和 strvar.substring(3, 0) 将返回相同的子字符串。
如果 start 或 end 为 NaN 或者负数,那么将其替换为0。
substring 方法返回的子串包括 start 处的字符,但不包括 end 处的字符。
如果 start 与 end 相等,那么该方法返回的就是一个空串(即长度为 0 的字符串)。
如果 start 比 end 大,那么该方法在提取子串之前会先交换这两个参数。
如果 start 或 end 为负数,那么它将被替换为 0。
子字符串的长度等于 start 和 end 之差的绝对值。例如,在 strvar.substring(0, 3) 和 strvar.substring(3, 0) 返回的子字符串的的长度是 3。
下面的示例演示了 substring 方法的用法。

function SubstringDemo(){
 var ss; // 声明变量。
 var s = "The rain in Spain falls mainly in the plain..";
 ss = s.substring(12, 17); // 取子字符串。
 return(ss); // 返回子字符串。
}

slice(start,[end])

第一个参数代表开始位置,第二个参数代表结束位置的下一个位置,截取出来的字符串的长度为第二个参数与第一个参数之间的差;若参数值为负数,则将该值加上字符串长度后转为正值;若第一个参数等于大于第二个参数,则返回空字符串.

function SubstringDemo(){
 var ss; // 声明变量。
 var s = "12345";
 ss = s.substring(1, 3); // 取子字符串:23。
 return(ss); // 返回子字符串。
}

函数:split()

功能:使用一个指定的分隔符把一个字符串分割存储到数组

str="jpg|bmp|gif|ico|png";
arr=theString.split("|");
//arr是一个包含字符值"jpg"、"bmp"、"gif"、"ico"和"png"的数组

函数:Join()

功能:使用您选择的分隔符将一个数组合并为一个字符串

var delimitedString=myArray.join(delimiter);
var myList=new Array("jpg","bmp","gif","ico","png");
var portableList=myList.join("|");
//结果是jpg|bmp|gif|ico|png

函数:indexOf()

功能:返回字符串中匹配子串的第一个字符的下标

var myString="JavaScript";
var w=myString.indexOf("v"); //w will be 2
var x=myString.indexOf("S"); //x will be 4
var y=myString.indexOf("Script"); //y will also be 4
var z=myString.indexOf("key"); //z will be -1 

函数:lastIndexOf()

定义:lastIndexOf()方法返回从右向左出现某个字符或字符串的首个字符索引值(与indexOf相反)
功能:返回字符串索引值

var src="images/off_1.png";
alert(src.lastIndexOf('/'));
alert(src.lastIndexOf('g'));
//弹出值依次为:6,15
  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 打赏
    打赏
  • 0
    评论
好的,让我们来实现一个多元线性回归(Multiple Linear Regression)神经网络,它可以分析多个自变量和因变量之间的关系。 首先,我们需要准备一些数据。我们可以使用一个包含多个自变量和因变量的数据集,例如波士顿房价数据集。数据集包含了13个自变量,例如房间数、平均房间面积等,以及一个因变量,即房屋的中位价值。我们可以使用ml5.js中的loadTable()函数加载数据集。 接下来,我们需要将数据集分成训练集和测试集。训练集用于训练神经网络,测试集用于评估神经网络的性能。我们可以使用ml5.js中的subset()函数实现这个过程。 然后,我们需要创建一个神经网络模型。我们可以使用ml5.js中的neuralNetwork()函数创建一个神经网络模型。神经网络模型包含了一个输入层、一个或多个隐藏层和一个输出层,我们需要指定这些层的大小和激活函数。在这个例子中,我们使用一个具有两个隐藏层的神经网络,每个隐藏层包含10个神经元。我们选择使用ReLU激活函数。 接下来,我们需要将数据集的自变量和因变量分别放入训练集和测试集中,并将它们归一化。我们可以使用ml5.js中的normalizeData()函数实现这个过程。 然后,我们可以使用ml5.js中的train()函数训练神经网络,指定训练集和一些其他参数,例如学习率和训练次数。 最后,我们可以使用ml5.js中的predict()函数对测试集进行预测,并计算预测结果与真实结果之间的误差。 下面是完整的代码示例: ```javascript // 加载数据集 const table = ml5.table('data/boston-housing.csv', () => { // 将数据集分成训练集和测试集 const trainingData = table.subset([0, 400]); const testingData = table.subset([400, 506]); // 将数据归一化 const { inputMax, inputMin, outputMax, outputMin } = ml5.normalizeData(trainingData); // 创建神经网络模型 const neuralNetwork = ml5.neuralNetwork({ inputSize: 13, hiddenUnits: [10, 10], outputSize: 1, activation: 'relu' }); // 添加数据到训练集 const trainingInputs = []; const trainingOutputs = []; trainingData.rows.forEach(row => { const inputs = row.arr.slice(0, 13); const output = row.obj.medv; trainingInputs.push(inputs); trainingOutputs.push(output); }); // 训练神经网络 neuralNetwork.train({ inputs: trainingInputs, outputs: trainingOutputs, learningRate: 0.1, epochs: 100 }, () => { console.log('训练完成!'); // 对测试集进行预测 const testingInputs = []; const testingOutputs = []; testingData.rows.forEach(row => { const inputs = row.arr.slice(0, 13); const output = row.obj.medv; testingInputs.push(inputs); testingOutputs.push(output); }); // 计算预测结果 const predictions = neuralNetwork.predict(testingInputs); const predictedValues = predictions.map(prediction => prediction * (outputMax - outputMin) + outputMin); const trueValues = testingOutputs.map(value => value * (outputMax - outputMin) + outputMin); const mse = ml5.meanSquaredError(predictedValues, trueValues); console.log(`均方误差:${mse}`); }); }); ```
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

strggle_bin

一毛不嫌少,十元不嫌多

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值