我有这个值:
如何获取[]内的值,我不需要任何其他值。只是[]部分内部的字符串,如Sachet或其他javascript中的字符串。我需要它们并将它传递给我的ajax函数
答案 0 :(得分:2)
使用正则表达式是最快的方法;你可以使用这个:(\[\w+\])+
或(\[.*\])
或\[(.*?)]
。
<强>更新强>
var samples = [ '4Green (Blister) [Others]', '!@#$%^&*()\'RWEW<>?P{}:" [Sachet]',
'TRIAL [Sachet]'];
var regex = /\[(.*?)]/;
for (var i = 0; i < samples.length; i++) {
console.log(samples[i].match(regex)[1]);
}
输出:
machina@6PXM10I> node regex.js
Others
Sachet
Sachet
答案 1 :(得分:1)
如果您因任何原因不想使用正则表达式,可以这样做:
您可以使用document.getElementsByClassName获取要测试的每个字符串,然后循环遍历它返回的类似数组的Collection以提取每个字符串。
然后,使用“indexOf()”方法查找每个括号的开头和结尾。以下是有关“indexOf()”http://www.w3schools.com/jsref/jsref_indexof.asp
获得每个括号的开头和结尾后,使用子字符串方法提取括号的内容。有关子字符串方法的更多信息,请访问:http://www.w3schools.com/jsref/jsref_substring.asp
最终结果如下所示:
var myStrings = document.getElementsByClassName("classNameHere");
for(var i = 0; i < myStrings.length; i++){
var start = myStrings[i].indexOf("[");
var end = myStrings[i].indexOf("]");
var extractedString = myStrings[i].substring(start, end);
// Do your Ajax call here with the "extractedString" variable
}
答案 2 :(得分:1)
您可以执行以下操作:
var myString = "TRIAL [Sachet]";
var myRegexp = /\[(.*)\]+/g;
var match = myRegexp.exec(myString);
alert(match[1]);
正则表达式将为您提供[]
内的任何内容。
另外还有一件事是!@#$%^&*()'RWEW<>?P{}:" [Sachet]
无效的字符串,你需要转义引号。
!@#$%^&*()'RWEW<>?P{}:\" [Sachet]
请注意\
"