I can't replace this pattern in javascript [closed] - javascript

Closed. This question needs details or clarity. It is not currently accepting answers.
Want to improve this question? Add details and clarify the problem by editing this post.
Closed 8 years ago.
Improve this question
I need your help on my new project
I hate regular expressions and its rules but i must use it this project.
want do this replace
var aString = '[bkz:sample key]';
I want get into key variable 'sample key' value from this aString
var key,clean;
key = 'sample key';
clean = cleanChars(key);
// clean = sample_key
//my target
key
how can i do this?
thanks in advance

function extractKey(str) {
var match = (str || '').match(/^\[bkz:(.+)\]$/);
return match? match[1] : '';
}
extractKey('[bkz:sample key]'); //sample key

var aString = "[bkz:sample key]";
var regex = /^\[(.+)\:(.+)\]$/;
var matches = regex.exec(aString);
// "sample key" should now be in matches[2]

Related

How can I style text that precedes a colon character? [closed]

Closed. This question needs to be more focused. It is not currently accepting answers.
Want to improve this question? Update the question so it focuses on one problem only by editing this post.
Closed 2 years ago.
Improve this question
Is it possible to have the red-outlined text be bold with some JavaScript? There are no specific span classes so I'm not sure how to do it.
With split you can do this very easily
If I understand correctly, the answer is:
const address = (document.getElementsByTagName('address'))[0];
let resHtml = [];
let lineSplit = [];
let html = address.innerHTML;
let lines = html.split('<br>');
for(let i = 0; i<lines.length; i++) {
lineSplit = lines[i].split(':');
resHtml.push('<strong>' + lineSplit[0] + ':</strong>' + lineSplit[1]);
}
address.innerHTML = resHtml.join('<br>');
<address>
abc: test
<br>
efg: test
<br>
ijk: test
</address>

replace the string from just before the last dot(.) [closed]

Closed. This question needs to be more focused. It is not currently accepting answers.
Want to improve this question? Update the question so it focuses on one problem only by editing this post.
Closed 3 years ago.
Improve this question
I have a string like A/B/C/D.txt
So I want to replace the character just before the last . with the new one.
Like I would add E in last So the output should be A/B/C/E.txt
Can this is possible with only replace and concat Or Regex should help?
I'm sure the output is correct.
A/B/C/E.txt
var filename = 'A/B/C/D.txt';
var dotIndex = filename.lastIndexOf('.');
document.write(filename.substr(0, dotIndex-1) + 'E'+filename.substr(dotIndex, filename.length-dotIndex));
var parts = 'A/B/C/D.txt'.split('.');
if(parts.length > 1)
{
parts[parts.length-2] = parts[parts.length-2].replace(/.$/,"E");
let result = parts.join('.');
console.log(result);
}
Try this:
let name = "A/B/C/D.txt"
let res = name.substr(0, name.lastIndexOf(".")) + "E." + name.substr(name.lastIndexOf(".") + 1);
console.log(res);

How to validate postcode in a form using JavaScript [closed]

Closed. This question needs details or clarity. It is not currently accepting answers.
Want to improve this question? Add details and clarify the problem by editing this post.
Closed 7 years ago.
Improve this question
I'm trying to validate a postcode using JavaScript.
I have my regex.
^([Gg][Ii][Rr] 0[Aa]{2})|((([A-Za-z][0-9]{1,2})|(([A-Za-z][A-Ha-hJ-Yj-y][0-9]{1,2})|(([A-Za-z][0-9][A-Za-z])|([A-Za-z][A-Ha-hJ-Yj-y][0-9]?[A-Za-z])))) {0,1}[0-9][A-Za-z]{2})$
This is my function so far, not sure how to implement regex.
function validatePostcode()
{
var postcode = document.getElementById("postcode").value;
}
Any other suggestions that would format a postcode that matches;
CF24 9DG
You can do something like this:
function validatePostalCode(){
var regExp = /^([Gg][Ii][Rr] 0[Aa]{2})|((([A-Za-z][0-9]{1,2})|(([A-Za-z][A-Ha-hJ-Yj-y][0-9]{1,2})|(([A-Za-z][0-9][A-Za-z])|([A-Za-z][A-Ha-hJ-Yj-y][0-9]?[A-Za-z])))) {0,1}[0-9][A-Za-z]{2})$/;
var postcode = document.getElementById("postcode").value;
if( regExp.test( postcode ) ){
// Do something here, result is true.
} else {
alert("result is false");
}
}
You can try it out in this fiddle: http://jsfiddle.net/Cedriking/5b8wtf1f/2/
You should use JavaScript test() Method RegExpObject.test(string) that returns:
TRUE if the input string matches the RegExpObject regex
FALSE if the input string does not match the RegExpObject regex
Your validator function should look like this:
var validatePostCode = function(postCode) {
var parsePostCode = 'your_regex';
return parsePostCode.test(postCode);
};
var postCode = document.getElementById("postcode").value;
validatePostCode(postCode); // calling the validator function

Variable reset to default option, WHY? [closed]

Closed. This question needs details or clarity. It is not currently accepting answers.
Want to improve this question? Add details and clarify the problem by editing this post.
Closed 8 years ago.
Improve this question
I do not understand how I keep ending up with "null" after variable is assigned a number.
function evalKayScript(syn){
coms = extract(syn,"{...}");
document.write(JSON.stringify(coms));//debug
for(x in coms){
ops = extract(coms[x],"(...)");
com = null; //<-- ***com preset null***
for(y in funNames){
if(ops[1] == funNames[y]){
com = y; //<-- ***com changed to "y"***
}
}
alert(com); <-- alerts given below (first two alerts)
if(com == null){
alert("Command ((("+ops[1]+"))) Not Registered!");
return null;
}
exe = funValues[y];
inputs = execVars(ops[2]);
inputs = extract(inputs,"[...]");
for(y in inputs){
exe.replace(new RegExp("/\(\%"+y+"\%\)/gim"),inputs[y]);
}
exe.replace(new RegExp("/\(\%name\%\)/gim"),ops[0]).replace(new RegExp("/\(\%function\%\)/gim"),ops[1]);
exea = exe;
if(exe.replace(new RegExp("/\:\:\:javascript/gim"),"")! = exes){ //<-- new invalid ":" error
eval(exe);
}else{
evalKayScript(exe);
}
}
}
I do not understand why, variable "com" goes to a number, then back to null...
I have setup some error catching in my own form, and i end up with these alerts:
0 //<-- var com
null //<-- ***var com? this makes no sense, how does it go back to null?***
Command ((("(%name%) already exists!"))) Not Registered! //<--caused by if(com == null) This is normal.
Live script at http://jstone88.bugs3.com/kayscript/file1.html, and JS file at http://jstone88.bugs3.com/kayscript/kayscript.js
You aren't using RegExp constructor as it should have been used.
It is like this:
new RegExp("pattern without / at the beginning an end","flags");
/pattern/flags is literal form of writing a regex in js, but it is different in RegExp constructor.

Removing quotation marks from JSON encoded string [closed]

Closed. This question needs details or clarity. It is not currently accepting answers.
Want to improve this question? Add details and clarify the problem by editing this post.
Closed 9 years ago.
Improve this question
I currently have a JSON encoded string generated by inputting values from a array, it is as follows -
"["{value: 97049}","{value: 84866}","{value: 39402}","{value: 30250}","{value: 33363}"]"
I need to convert it to the following format :
"[{value: 97049},{value: 84866},{value: 39402},{value: 30250},{value: 33363}]"
Thanks.
$input = $json_var;
$input = str_replace( '"', '', $input ); // strip em
$input = '"' . $input . '"'; // wrap back around
JS:
var json_array = JSON.parse(json_string);
for (var i = 0; i < json_array.length; i++) {
json_array[i] = JSON.parse(json_array[i];
}
PHP:
$json_array = json_decode($json_string);
$json_array = array_map('json_decode', $json_array);
It would probably be better to fix this at the source. If it's supposed to be an array of objects, don't quote each array element before adding them to the array.
var myQuotedJson = '"["{value: 97049}","{value: 84866}","{value: 39402}","{value: 30250}","{value: 33363}"]"';
var myUnquotedJson = myQuotedJson.replace(/"/, '');
You can do that like this:
var input = '"["{value: 97049}","{value: 84866}","{value: 39402}","{value: 30250}","{value: 33363}"]"';
output = '"' + input.replace('"','') + '"';
//Alerts your output
alert(output );

Categories