可以说我有一个字符串,但是文本可以是任何东西!
这是一个测试案例
“边界”是空格后的计数,这意味着charIndex =
(0)这(5)是(8)一个(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;
}
本文收集自互联网,转载请注明来源。
如有侵权,请联系[email protected] 删除。
我来说两句