Javascript - 替换特殊字符

时间:2016-11-21 05:42:49

标签: javascript

我有2个具有值的javascript变量:

var Name = 'John';
var Age = '14';

和另一个看起来像这样的字符串变量:

var message = 'I am **Name** and my age is **Age**';

如何将NameAge变量的值注入message字符串,以使用值'John'替换**Name****Age** '14'?

var newmessage = 'I am John and my age is 14';

我可以使用javascript函数执行此操作吗?

3 个答案:

答案 0 :(得分:5)

使用String#replace方法并从var Name = 'John'; var Age = '14'; var message = 'I am **Name** and my age is **Age**'; var newmessage = message.replace(/\*\*([\w\d]+)\*\*/g, function(m, m1) { return window[m1]; }); console.log(newmessage)对象获取变量(仅当在全局上下文中定义变量时,其他方式需要使用我不喜欢的eval()方法使用。)。

var obj = {
  Name: 'John',
  Age: '14'
};
var message = 'I am **Name** and my age is **Age**';
var newmessage = message.replace(/\*\*([\w\d]+)\*\*/g, function(m, m1) {
  return obj[m1];
});

console.log(newmessage)

或者使用对象而不是变量来存储值,这样即使它没有在全局上下文中定义,也可以轻松获取值。

$(document).ready(function(){
    var d = new Date();
    var n = d.getHours();
    if (n > 19 || n < 6)
      // If time is after 7PM or before 6AM, apply night theme to ‘body’
      document.body.className = "night";
    else if (n > 16 && n < 19)
      // If time is between 4PM – 7PM sunset theme to ‘body’
      document.body.className = "sunset";
    else
      // Else use ‘day’ theme
      document.body.className = "day";
});

答案 1 :(得分:3)

尝试使用简单的string.replace()功能

public static void main(String[] args){

        String file = "/Path/to/file/abc.csv";

        SparkConf conf = new SparkConf().setAppName("test").setMaster("local");
        JavaSparkContext sc = new JavaSparkContext(conf);

       JavaRDD<String> lines = sc.textFile(file);


        JavaRDD<String > filteredLines = lines.filter(new Function<String, Boolean>() {
            @Override
            public Boolean call(String s) throws Exception {
                return s.contains("Hollywood");
            }
        });

        filteredLines.coalesce(1).saveAsObjectFile("hdfs://localhost:9000/input");

        sc.close();
    }

答案 2 :(得分:0)

这个解决方案怎么样?检查 FIRST ,如果这些subStrings实际上是字符串消息的一部分。希望它有所帮助!

&#13;
&#13;
var Name = 'John';
var Age = '14';

var message = "I am **Name** and my age is **Age**";
console.log(myFunction(message));

function myFunction(str){
  var finalMessage = "";
  if(str.indexOf("**Name**") !== -1){
     finalMessage = str.replace('**Name**' ,Name);
  }
  if(finalMessage.indexOf("**Age**") !== -1){
     finalMessage = finalMessage.replace("**Age**" ,Age);
  }
  return finalMessage;
}
&#13;
&#13;
&#13;