我最近开始使用JavaScript和Node,但我在处理.ejs文件时遇到了麻烦。
我试图在我的页面中实现一个按钮,该按钮在textarea中插入一个字符串并运行一个函数来评估该字符串是否为xml代码(更准确地说是一个广泛的标记,但是那个' s不是重点。)
所以,我有这样的事情:
<div class="clear vastClass">
<h3> Vast Tag </h3>
<div class="vastClass" hidden>
<div>
<p>Please validate your code!</p>
<input type="button" id ="buttonVast" value="Validate">
</div>
<textarea id="vastTag" name="vastTag" class="form_creatives" value="">Insert you Vast Tag</textarea>
</div>
</div>
<script>
$("#buttonVast").click(function(){
// TODO
}
</script>
所以这里有几个问题:
我试图使用节点模块xml2js查看文本并且我已经在线阅读了一些内容(我不知道它们是否正确)。 e.g:
所以,我的问题是,如果有人对我可以在我的脚本中使用节点模块的方法有任何提示,或者如果可以在file.js中定义一个函数然后将此函数调用到脚本中,或者,如果有人知道browserify如何工作,以及它是否可用于解决我的问题。
答案 0 :(得分:0)
要检查textarea中的字符串是否为xml,您可以使用正则表达式。这将检查输入是否以
这是一个工作小提琴:http://fiddle.jshell.net/mikemjharris/j1nL8rz0/
检查xml的具体代码:
function checkXML () {
var textToCheck = $('textarea').val();
if( textToCheck.match(/\<\?xml /) ) {
alert('this is xml!');
} else {
alert('not xml');
}
}
答案 1 :(得分:0)
感谢@mikemjharris的回复,但它并没有真正解决我的问题。
经过几天的搜索,我发现了如何使用browserify,所以我自己也会回答。
首先,我必须创建一个.js文件,比如说main.js,我声明并定义了我想要使用的所有函数,例如。
Main.js:
var xml2js = require('xml2js')
validateVast = function(vast){
var parser = xml2js.Parser()
parser.parseString(vast, function(err, result){
if(result && !err){
console.log(result)
}
else{
console.log(err.toString())
}
})
}
然后,在终端中,我使用以下命令将Bundle文件添加到我的公共资源文件夹:
browserify folder/main.js -o public/js/xml2jsBundle
然后,在我的html文件中,我添加了一行
<script src="js/xml2jsBundle.js"</script>
然后能够在html的主体中调用我的函数,如:
<body>
<script src="js/xml2jsBundle.js"</script>
<input type="button" value="Validate" class="bt_Add" onClick="validate()">
<textarea id="vastTag" name="vastTag" class="form_creatives" value=""></textarea>
<script type="text/javascript">
function validate(){
var vast = $("#vastTag").val()
validateVast(vast)
}
</script>
</body>
嗯,我想这就是它。 谢谢你的帮助,再见