Javascript 在React Native中创建简单的hashtag格式化程序

Javascript 在React Native中创建简单的hashtag格式化程序,javascript,reactjs,react-native,Javascript,Reactjs,React Native,在不使用外部库的情况下,是否可以使用hashtag解析字符串,然后使用Text组件设置其样式 const string=“让我们在推特上推特”; //期望: //让我们在推特上发推吧 我想这样可以: import React from 'react'; import { Text } from 'react-native'; export const HASHTAG_FORMATTER = string => { return string.replace(/(^|\s)(#[a

在不使用外部库的情况下,是否可以使用hashtag解析字符串,然后使用
Text
组件设置其样式


const string=“让我们在推特上推特”;
//期望:
//让我们在推特上发推吧
我想这样可以:

import React from 'react';
import { Text } from 'react-native';

export const HASHTAG_FORMATTER = string => {
  return string.replace(/(^|\s)(#[a-z\d-]+)/ig, `$1${<Text style={{ color: 'blue' }}>$2</Text>}`);
}
从“React”导入React;
从“react native”导入{Text};
export const HASHTAG_FORMATTER=string=>{
返回字符串.replace(/(^|\s)(#[a-z\d-]+)/ig,`1${$2}`);
}
用法:

从“React”导入React;
从“react native”导入{View,Text};
从“../../utilities/HASHTAG”导入{HASHTAG_FORMATTER};
const Home=props=>{
返回(
{HASHTAG_格式化程序(“让我们在推特上推特”)}
)
}
我得到的是:

让我们在[对象对象]上[对象对象]

见示例:


有没有办法在jsx中实现这一点?谢谢。

您不能像这样使用反向引用,当您想要进行动态计算时,可以使用replace的回调函数

const HASHTAG\u FORMATTER=string=>{
返回字符串。替换(/(^ |\s)(#[a-z\d-]+)/ig,(m,g1,g2)=>{
返回g1+“”+g2+“”
});
}

log(HASHTAG_FORMATTER(“#tweet”)
谢谢,但这在React Native中不起作用。整个输出被视为一个字符串。另外,“span”应该是
Text
component.@Sylar span只是为了演示,你能发一把小提琴吗?我可以看看如何专门为react做native@Sylar你可以看到你可以做这样的事情