Factorial, Fibonacci, Prime, Palindrome
a. Design a appropriate function should be called to display
- Factorial of that number
- Fibonacci series up to that number
- Prime numbers up to that number
- Is it palindrome or not
b. Design a HTML having a text box and four buttons named Factorial, Fibonacci, Prime, and Palindrome. When a button is pressed an appropriate function should be called to display
index.html
</>
Copy
<!DOCTYPE html>
<html>
<head>
<title>JavaScript Functions and Events</title>
<script type="text/javascript">
// Utility: Reads the input value and converts it to an integer.
function getInputNumber() {
return parseInt(document.getElementById("numberInput").value, 10);
}
// Utility: Displays the provided message in the result div.
function displayResult(message) {
document.getElementById("result").innerHTML = message;
}
// Function to calculate the factorial of the entered number.
function computeFactorial() {
var num = getInputNumber();
if (isNaN(num) || num < 0) {
displayResult("Please enter a non-negative integer.");
return;
}
var factorial = 1;
for (var i = 2; i <= num; i++) {
factorial *= i;
}
displayResult("Factorial of " + num + " is " + factorial + ".");
}
// Function to display the Fibonacci series up to the entered number.
function computeFibonacci() {
var num = getInputNumber();
if (isNaN(num) || num < 0) {
displayResult("Please enter a non-negative integer.");
return;
}
var fibSeries = [];
var a = 0, b = 1;
// Always include 0 in the series.
if (num >= 0) {
fibSeries.push(a);
}
// Include 1 if within the limit.
if (num >= 1) {
fibSeries.push(b);
}
var next = a + b;
while (next <= num) {
fibSeries.push(next);
a = b;
b = next;
next = a + b;
}
displayResult("Fibonacci series up to " + num + ": " + fibSeries.join(", "));
}
// Function to list all prime numbers up to the entered number.
function computePrimes() {
var num = getInputNumber();
if (isNaN(num) || num < 2) {
displayResult("Please enter an integer greater than or equal to 2.");
return;
}
var primes = [];
for (var i = 2; i <= num; i++) {
var isPrime = true;
// Check for factors up to the square root of i.
for (var j = 2; j <= Math.sqrt(i); j++) {
if (i % j === 0) {
isPrime = false;
break;
}
}
if (isPrime) {
primes.push(i);
}
}
displayResult("Prime numbers up to " + num + ": " + primes.join(", "));
}
// Function to check whether the entered number is a palindrome.
function checkPalindrome() {
var input = document.getElementById("numberInput").value;
if (input === "") {
displayResult("Please enter a number.");
return;
}
var reversed = input.split("").reverse().join("");
if (input === reversed) {
displayResult(input + " is a palindrome.");
} else {
displayResult(input + " is not a palindrome.");
}
}
</script>
</head>
<body>
<h1>JavaScript Functions and Events</h1>
<p>
<label for="numberInput">Enter a number:</label>
<input type="text" id="numberInput" placeholder="Enter number" />
</p>
<p>
<button onclick="computeFactorial()">Factorial</button>
<button onclick="computeFibonacci()">Fibonacci</button>
<button onclick="computePrimes()">Prime</button>
<button onclick="checkPalindrome()">Palindrome</button>
</p>
<div id="result" style="margin-top:20px; font-size:1.2em;"></div>
</body>
</html>

Calculating Factorial

Calculating Fibonacci

Prime Numbers

Checking Palindrome

Registration Page Validation
c. Write a program to validate the following fields in a registration page i Name (start with alphabet and followed by alphanumeric and the length should not be less than 6 characters)
ii.Mobile (only numbers and length 10 digits)
iii.E-mail (should contain format like xxxxxxx@xxxxxx.xxx)
index.html
</>
Copy
<!DOCTYPE html>
<html>
<head>
<title>Registration Form Validation</title>
<style>
.error { color: red; }
.success { color: green; }
body { font-family: Arial, sans-serif; }
form div { margin-bottom: 10px; }
</style>
<script type="text/javascript">
function validateForm(event) {
// Prevent form submission (page refresh)
event.preventDefault();
// Clear previous messages
document.getElementById("message").innerHTML = "";
// Get field values and trim any extra spaces
var name = document.getElementById("name").value.trim();
var mobile = document.getElementById("mobile").value.trim();
var email = document.getElementById("email").value.trim();
// Array to hold error messages
var errors = [];
// Validate Name:
// - Starts with an alphabet
// - Followed by alphanumeric characters
// - Total length not less than 6 characters
var nameRegex = /^[A-Za-z][A-Za-z0-9]{5,}$/;
if (!nameRegex.test(name)) {
errors.push("Name must start with an alphabet, followed by alphanumeric characters, and be at least 6 characters long.");
}
// Validate Mobile:
// - Only digits
// - Exactly 10 digits
var mobileRegex = /^\d{10}$/;
if (!mobileRegex.test(mobile)) {
errors.push("Mobile number must be exactly 10 digits and contain only numbers.");
}
// Validate E-mail:
// - Basic pattern: one or more allowed characters, an @, one or more allowed characters, a dot, and at least 2 letters
var emailRegex = /^[A-Za-z0-9._%+-]+@[A-Za-z0-9.-]+\.[A-Za-z]{2,}$/;
if (!emailRegex.test(email)) {
errors.push("E-mail must be in the format xxxxxxx@xxxxxx.xxx.");
}
// Display messages
var messageDiv = document.getElementById("message");
if (errors.length > 0) {
var errorHTML = "<ul>";
errors.forEach(function(error) {
errorHTML += "<li class='error'>" + error + "</li>";
});
errorHTML += "</ul>";
messageDiv.innerHTML = errorHTML;
} else {
messageDiv.innerHTML = "<p class='success'>Registration Successful!</p>";
}
}
</script>
</head>
<body>
<h1>Registration Form</h1>
<form onsubmit="validateForm(event)">
<div>
<label for="name">Name:</label>
<input type="text" id="name" placeholder="Enter your name" required>
</div>
<div>
<label for="mobile">Mobile:</label>
<input type="text" id="mobile" placeholder="10-digit mobile number" required>
</div>
<div>
<label for="email">E-mail:</label>
<input type="text" id="email" placeholder="example@domain.com" required>
</div>
<button type="submit">Register</button>
</form>
<div id="message" style="margin-top:20px;"></div>
</body>
</html>

Not entering email


