读取方括号 () 内的字符
本文关键字:字符 方括号 读取 | 更新日期: 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小提琴