在从索引位置返回的字符串中查找空白
Find white space in a string back from an index position
假设我有一个字符串,但文本可以是任何东西!
这是一个测试用例
"边界"是一个空格后的计数,这意味着charIndex=
(0)此(5) 是(8) a(10) 试验(15) 案例
上面的意思是从(0)到(5)这个词等于"this"。
如果我想知道刚刚使用的单词,我需要substr
从charIndex
开始,向后看,直到indexOf(' ')
示例:如果我想找到charIndex(10)中刚刚使用的单词,我将如何指示javascript向后看,直到下一个空格,并给我单词"a"。
是否可以使用Javascript或JQuery在处理时间尽可能短的情况下做到这一点?
更新
我决定实现我需要的东西,而不是照顾单词然后回去,我把单词分开,并用每个charIndex作为计数。代码如下:
var u = new SpeechSynthesisUtterance();
var words = element.innerHTML.split(' ');
var a = 0;
u.text = element.innerHTML;
u.lang = 'en-UK';
u.rate = 0.7;
u.onboundary = function(event) {
console.log(words);
element.innerHTML = element.innerHTML.replace(words[a], '<strong>' + words[a] + '</strong>');
a++;
}
但由于这不是问题的答案,反向搜索字符串的最佳答案仍然是标记为正确的字符串,尽管根据字符串结构,它仍然需要一些工作。
不清楚确切的问题,但您可以在您的情况下使用lastindexof、indexof和substr的组合,也可以编写自己的内容。
注意:没有进行错误处理等。请这样做。
var stringToBeParsed="This is a test case"
i = stringToBeParsed.lastIndexOf(" ",8);
j = stringToBeParsed.indexOf(" ",i+1);
document.getElementById('output').innerText = stringToBeParsed.substr(i,j-i);
自定义
function parseBackward(stringToBeParsed, indexOfSpace){
var output = '';
for (var i = indexOfSpace-1; i >= 0; i--) {
if(stringToBeParsed.charAt(i) == ' '){
break;
}
output = stringToBeParsed.charAt(i) + output;
}
document.getElementById('output').innerText = output;
}
如果我理解你的问题,你可以使用lastIndexOf:
var TC="This is a test case"
TC.lastIndexOf(" ",10)
这将返回9,使用lastIndexOf(string,position)向后搜索。
编辑:如果你需要这个词:
var TC="This is a test case"
TC.substr(TC.lastIndexOf(' ',10)+1,TC.length - TC.indexOf(' ',10));
所以你使用substr。首先从位置10的空格向后搜索(和1相加,得到字母的开头)以开始子串。作为第二个参数y,获取下一个出现项和长度的子项。
第2版:
好的,这个功能应该在不到毫秒的时间内工作:
function getWord(phrase,position){
var last = phrase.indexOf(' ',position);
var more=0
if (last == -1){
more = phrase.length;
} else { more = phrase.indexOf(' ',position);}
var word = phrase.substring(phrase.lastIndexOf(' ',position)+1,more);
return(word);
}
在这个庞克http://plnkr.co/wfeitWvSvoLzqIknKFyg你可以查看一下如何在不到毫秒的时间内完成工作。如果你打开一个控制台,你会看到它是如何在指定的位置接受单词的。
- 在字符串中查找所有图像 src URL 并存储在数组中
- 用于查找子字符串的Regex
- 遍历DOM查找字符串有时会正确返回
- Javascript Regex,在字符串中查找数字
- 使用Regex查找URL中的特定字符串
- 在数组中查找某些字符串(Javascript)
- 查找并替换特定字符串
- 在从索引位置返回的字符串中查找空白
- 使用捕获组查找和替换json字符串中出现的所有短语
- 在Javascript中查找子字符串,并前置/附加一些字符
- 查找字符串及其索引中的最大数字
- 使用正则表达式查找字符串中的不匹配字符
- 如何更改字符串的查找方法
- 修复了如何在容器中查找和替换字符串的功能
- 通过包含的字符串查找对象
- 使用var和字符串查找文件夹
- 搜索字符串查找名称,并使用for循环记录每次出现的名称
- 二进制字符串查找
- 使用jquery和HTML字符串查找每个链接
- 按字符串查找对象索引