js 字符串如何查询提取存在的某两个值

有位大哥说我讲的不够清楚,我再努力的重新组织下语言~~

let str = "(16,#FFFFFF)你好" //有"("和"#",需要提取出16和#FFFFFF
let str = "不是很好"     //没有"("和"#",不需要做任何操作
let str = "(我)不是很好"     //只有"(",不需要做任何操作
let str = "#不是很好"     //只有"#",不需要做任何操作

这个str是变量,每一个的值都是不固定的,
我想用"("和“#”作为判断的条件,
如果str里包含"("和“#”,那么就进行查询并提取,
用if来判断,达到的输出效果是:

 let fontSize = 16;
 let color = #FFFFFF;

在这里先谢谢大家解答!!小弟感激不尽!!

阅读 3k
2 个回答

说着 题目真的没交代得很清楚要替换那一部分。猜着题目做下

"不是很好".replace(/\((\d+)/g,"<span style={{fontSize:'$1px'").replace(/(\#[\d|a-f]{3,6})/gi,"color:'$1}}>").replace(/\)(.*)/,"$1</span>")
//"不是很好"

"(16,#FFFFFF)你好".replace(/\((\d+)/g,"<span style={{fontSize:'$1px'").replace(/(\#[\d|a-f]{3,6})/gi,"color:'$1}}>").replace(/\)(.*)/,"$1</span>")
//<span style={{fontSize:'16px',color:'#FFFFFF}}>你好</span>

//简单兼容一下颜色
"(16,#333)你好".replace(/\((\d+)/g,"<span style={{fontSize:'$1px'").replace(/(\#[\d|a-f]{3,6})/gi,"color:'$1}}>").replace(/\)(.*)/,"$1</span>")
//"<span style={{fontSize:'16px',color:'#333}}>你好</span>"

你这可能性太多了,比如:

let str = "(16,#FFFFFF)你好" //有"("和"#",需要提取出16和#FFFFFF
let str = "不是很好"     //没有"("和"#",不需要做任何操作
let str = "(我)不是很好"     //只有"(",不需要做任何操作
let str = "#不是很好"     //只有"#",不需要做任何操作

let str = "#(不是很)好"
let str = ")#(不是很好"
let str = "#(#不是很好)"
、、、

你要把你所有的可能性罗列出来,不然没法做。

撰写回答
你尚未登录,登录后可以
  • 和开发者交流问题的细节
  • 关注并接收问题和回答的更新提醒
  • 参与内容的编辑和改进,让解决方法与时俱进
推荐问题