在字符串javascript中获取特定值

时间:2015-08-18 02:56:46

标签: javascript

我有这个值:

  • 4Green(水泡)[其他]
  • !@#$%^& *()'RWEW<>?P {}:“[Sachet]
  • 试用[Sachet]

如何获取[]内的值,我不需要任何其他值。只是[]部分内部的字符串,如Sachet或其他javascript中的字符串。我需要它们并将它传递给我的ajax函数

3 个答案:

答案 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)

如果您因任何原因不想使用正则表达式,可以这样做:

  1. 您可以使用document.getElementsByClassName获取要测试的每个字符串,然后循环遍历它返回的类似数组的Collection以提取每个字符串。

  2. 然后,使用“indexOf()”方法查找每个括号的开头和结尾。以下是有关“indexOf()”http://www.w3schools.com/jsref/jsref_indexof.asp

  3. 的更多信息
  4. 获得每个括号的开头和结尾后,使用子字符串方法提取括号的内容。有关子字符串方法的更多信息,请访问:http://www.w3schools.com/jsref/jsref_substring.asp

  5. 最终结果如下所示:

            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]

请注意\

之前的"