Javascript 正则表达式拆分字符串并检查字符串是否为
安瓦尔奥普维勒米斯(499 | 453)C44 这是字符串的样子。虽然它实际上是这样的:“Aanval op variable(variable)variable 我想做的是1:获取坐标(我已经有了这个),2获取Vlemis(第一个变量),获取C44(第三个变量),然后检查字符串是否属于这种类型 我的代码:Javascript 正则表达式拆分字符串并检查字符串是否为,javascript,jquery,regex,Javascript,Jquery,Regex,安瓦尔奥普维勒米斯(499 | 453)C44 这是字符串的样子。虽然它实际上是这样的:“Aanval op variable(variable)variable 我想做的是1:获取坐标(我已经有了这个),2获取Vlemis(第一个变量),获取C44(第三个变量),然后检查字符串是否属于这种类型 我的代码: $("#commands_table tr.nowrap").each(function(){ var text = $(this).find("input[id
$("#commands_table tr.nowrap").each(function(){
var text = $(this).find("input[id*='editInput']").val();
var attackername= text.match(/(?=op)[\s|\w]*(?=\()/);
var coordinates = text.match(/\(\d{1,3}\|\d{1,3}\)/);
});
坐标起作用,而attackername不起作用
Html:
<span id="labelText[6]">Aanval op Vlemis (499|453) C44</span>
Aanval op Vlemis(499 | 453)C44
您应该使用一个正则表达式来获取所有内容:
var parts = text.match(/(\w+)\s*\((\d+)\|(\d+)\)\s*(\w+)/).slice(1);
这建立了
["Vlemis", "499", "453", "C44"]
如果您不确定字符串是否有效,请执行以下测试:
var parts = text.match(/(\w+)\s*\((\d+)\|(\d+)\)\s*(\w+)/);
if (parts) {
parts = parts.slice(1);
// do things with parts
} else {
// no match, yell at the user
}
坐标是什么,附件名是什么?你在谈论哪些变量。只是一个建议,但你不能抓住跨度的内容,在空格处将其拆分并相应地引用吗?是的,我可以,但这只适用于这种类型的字符串。我只能检查字符串是否与Regex:)Coodinates匹配=(xxx | yyy),attackername=first variable(vlemis)。这很有效,谢谢!当字符串不匹配时脚本停止运行(例如,有些字符串是这样的:549 | 567(vlemi)Ver=100,Kata=3),我如何检查字符串是否属于我提到的类型,然后在匹配时运行正则表达式?或者我做错了什么。(我正在使用alert来测试它)如果(parts!=null&&parts.length>0)可能吗?非常感谢您的快速回答!