Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/javascript/442.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
在javascript中使用split将字符串第一次出现时的字符加粗_Javascript_Reactjs_Regex_Split - Fatal编程技术网

在javascript中使用split将字符串第一次出现时的字符加粗

在javascript中使用split将字符串第一次出现时的字符加粗,javascript,reactjs,regex,split,Javascript,Reactjs,Regex,Split,我试图在字符串的第一次出现时将文本加粗,与输入查询相匹配,但字符串中的每一次出现字符都将加粗 输入:“9” 当前输出:9989459 预期产出:9989459 var display = "9989459" var input = "9" var splitArr = display.split(new RegExp(`(${input})`, 'gi')); var result = splitArr.map((parts,i) =>

我试图在字符串的第一次出现时将文本加粗,与输入查询相匹配,但字符串中的每一次出现字符都将加粗

输入:“9”
当前输出:9989459
预期产出:9989459

 var  display = "9989459" 
 var input = "9"
 var splitArr = display.split(new RegExp(`(${input})`, 'gi'));
 var result =  splitArr.map((parts,i) => parts === input ? <b key={i}>{parts}</b> : parts)
 return <span> {result} </span>
var display=“9989459”
var input=“9”
var splitArr=display.split(新的RegExp(`(${input})`,'gi');
var result=splitArr.map((parts,i)=>parts===input?{parts}:parts)
返回{result}
const target='9'
常量str='9989459'
常量索引=str.indexOf(目标)
const parts=[a.slice(0,索引),`${a.slice(索引,索引+1)}`,a.slice(索引+1)]
// [ '', '9', '989459' ]

@WiktorStribiżew-
是JSX而不是字符串。如果我使用该分隔符,则该分隔符后面的字符不会出现在array@WiktorStribiżew我试着用环绕搜索查询的粗体标记来呈现它,比如
9989459
Ok,试试
var rx=new RegExp(`(${input})`,`gi');var splitArr=显示分割(rx,2);splitArr.push(display.substr(rx.lastIndex+splitArr.join(“”.length))
No,它是用b标记呈现的,比如
9989459
Yes,这只是提取和转换原始字符串的示例代码。根据需要使用生成的数组,例如,直接或通过任何框架生成html
const target = '9'
const str = '9989459'
const index = str.indexOf(target)

const parts = [a.slice(0, index), `<b>${a.slice(index, index+1 )}</b>`, a.slice(index + 1)]

// [ '', '<b>9</b>', '989459' ]