读取方括号 () 内的字符

本文关键字:字符 方括号 读取 | 更新日期: 2023-09-27 18:35:05

我编写了一个 c# 代码来读取括号 "()" 内的字符串值

 string s = "Hello (World) This is (Working)";
            int i = 0;
            while ((i = s.IndexOf('(', i)) != -1)
            {
                int stop = s.Substring(i+1).IndexOf(')');
                string output = s.Substring(i + 1, stop);
                Console.WriteLine(output);
                i++;
            }
            Console.ReadLine();

有了这段代码,我得到了

世界工作

我想在 JavaScript 中实现这个,所以我尝试了这个

function myFunction()
{
var s = "Hello (World) This is (Working)";
            var i = 0;
            while ((i = s.indexOf('(', i)) != -1)
            {
                var stop = s.substring(i+1).indexOf(')');
                var output = s.substring(i+1, stop);
                document.write(output);
                i++;
            }
}

但它有不同的输出

SS (

我不擅长javaScript,请帮我找到这种方法的解决方案,我不想使用正则表达式

读取方括号 () 内的字符

尽管名称相似,但这些实际上并没有使用等效的方法(请注意第二个参数):

  • C# -- Substring(int index, int length)
  • JS -- substring(int indexA, int indexB)

尝试substr JavaScript -- substr(int index, int length)

function myFunction()
{
    var s = "Hello (World) This is (Working)";
    var i = 0;
    while ((i = s.indexOf('(', i)) != -1)
    {
        var stop = s.substr(i+1).indexOf(')');
        var output = s.substr(i+1, stop);
        document.write(output);
        i++;
    }
}

对于简单的控制逻辑,最好使用转换器。

你可以尝试使用SharpKit将c#代码转换为javascript。它可以免费用于小型或开源项目。

试试这个。这不是最好的代码,但它会按照你的要求去做:

var thestring = 'Hello (World) This is (Working)';
var words = thestring.match(/('([A-Za-z]+'))/g);
words = words.join('-').replace(/['(')]/g,'').split('-');

更新。我没有读到"我不想使用正则表达式"的部分,但也许你应该这样做。我不太了解正则表达式,但我尽我所能并尝试了解更多有关此的信息......世界。:|

这就是你想要的?

function myFunction() {
    var s = "Hello (World) This is (Working)";
    var i = 0;
    var outputs = [];
    while ((i = s.indexOf('(', i)) != -1) {
        var stop = s.indexOf(')', i);
        outputs.push(s.slice(i + 1, stop));
        i++;
    }
    document.write(outputs.join(' ')); // World Working
}

演示

我发现循环更具可读性。这是我的看法。

function myFunction() {
    var s = "Hello (World) This is (Working)";
    var output = false;
    for (i = 0; i <= s.length; i++) {
        if (s[i] == ')') {
            if (i != s.length) document.write(' ');
            output = false
        }
        if (output) document.write(s[i]);
        if (s[i] == '(') output = true;
    }
}

js小提琴