Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/javascript/398.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 Regex-复制CSS选择器并替换为新选择器_Javascript_Regex_Regex Group - Fatal编程技术网

Javascript Regex-复制CSS选择器并替换为新选择器

Javascript Regex-复制CSS选择器并替换为新选择器,javascript,regex,regex-group,Javascript,Regex,Regex Group,为了限制大型项目中不同各方使用的css库的范围(从而减少冲突),我成功地创建了一个正则表达式代码,该代码使用给定的选择器(在本例中为#test id,示例:)在所有css选择器前面加上一个前缀 为了使这一努力更加有用,我想 复制所有带前缀的选择器(具有前面的#测试id并以、或{结尾的选择器) 用另一个选择器替换#test id的重复值(比如第#test-id-1节) CSS示例: #测试id.面包屑, #测试id按钮{ 用户选择:无; 字体系列:“Helvetica Neue”,Helvet

为了限制大型项目中不同各方使用的css库的范围(从而减少冲突),我成功地创建了一个正则表达式代码,该代码使用给定的选择器(在本例中为#test id,示例:)在所有css选择器前面加上一个前缀

为了使这一努力更加有用,我想

  • 复制所有带前缀的选择器(具有前面的#测试id并以
    {
    结尾的选择器)
  • 用另一个选择器替换#test id的重复值(比如第#test-id-1节)

  • CSS示例:

    #测试id.面包屑,
    #测试id按钮{
    用户选择:无;
    字体系列:“Helvetica Neue”,Helvetica,Arial,无衬线
    }
    @介质屏幕和(最小宽度:769px),打印{
    #测试id.is-size-1-片剂{
    字体大小:3rem!重要
    }
    }
    这应该可以:

    s = s.replace(/(#test-id.+),/g, "$1,\nsection$1,")
    s = s.replace(/(#test-id.+){/g, "$1,\nsection$1{")
    
    对于这两个选项,我们需要两个正则表达式: 1.如果定义不是最后一个(即以逗号结尾) 2.如果是最后一个(以大括号结束)


    这里有一个小问题:

    您使用的是哪种编程语言?我使用的是Erlang,但JavaScript中的示例会很好谢谢,它在示例中起作用,如果我们想用完全不同的东西替换#test id,而不仅仅是在前面加上“section”?JonRiel您能提供一个示例吗“完全不同的东西”?:)当然!:)比如“#content”应该是#content.is-size-1-tablet{…}@JonRiel我想你的replace()应该是s=s.replace(/(#测试id)(.+),/g,“#测试id$2,\n#content$2”)